網路城邦
上一篇 回創作列表 下一篇  字體:
複雜的程式不是好東西
2018/09/05 07:08:00瀏覽1971|回應0|推薦11

剛開始學程式的時候,最敬佩的是高手們可以動輒寫出幾千行甚至幾萬行的程式!天啊!那些人的腦袋怎麼那麼厲害?Hold得住這麼複雜龐大的邏輯?事實上很多程式師也以此嚇唬外行人,即使已經沒用的程式也會永遠留著充場面,反正老闆看不懂程式,越多行表示越辛苦,沒有功勞也有苦勞嘛!加薪吧!

現在經過千山萬水的歷練,我也是程式高手了!以結果論,我已經寫出來的軟體數量與品質都是很嚇人的!但是我卻反而覺得程式碼太多根本不是好事!程式多表示運算多,執行時間可能較長,速度慢當然不好!更糟糕的是:多做多錯!程式越多出錯的機會就越多,維護除錯也越困難!所以我總是太急於將暫時不用的程式碼清得乾乾淨淨,常常發現還是有用時得補寫回來!

我那個包山包海甚麼怪車牌都能辨識的辨識核心只有三千行,四車道動態辨識軟體的主程式不到一千行,整個軟體編譯完的EXE檔案只有300多K!連字型資料都包在這300K裡面了,沒有額外的資料檔哦!現在一般手機拍的一張照片都不只300多K!可見我的程式有多小?六萬元買一個只有300多K的軟體,好像很沒價值?但是重點當然不是程式大小,而是他能作到的事情!

會想到這個,是因為我和RD最近在研究停車場情境下車輛進出時的動態偵測,就是直接用影像辨識有無車輛進入,做得差不多了,我希望RD想想如何與之前我的動態車牌辨識統計方式整合?幫助我的車牌判斷更準確更可靠。

之前我們的資料只有連續辨識的車牌結果,老實說我是「間接」知道有車進來的!有車牌就當有車嘛!但如果辨識不出車牌的時候我就會「以為」沒車了!結果可能是一輛堆高機或農用鐵牛車。相反的,如果其實沒車,我卻誤認了環境中的其他東西是車牌,那就詭異了!明明沒車在畫面中,卻有一個車號冒出來?那就是客戶消遣我的「幽靈車」了!

現在我們已經有了能直接辨識有車沒車的穩定辨識結果,上述的問題就不會發生了!即使有人拿張印有車牌的A4紙張想闖關都過不去的!因為人的形狀根本不像一輛汽車,我的軟體會看到的!

交代工作之後,RD整個下午都眉頭深鎖在研究我原本寫的複雜統計程式,我一看到就說:別看了!那些複雜的統計都是因為我根本「不確定有沒有車?是不是同一輛車?」,少了關鍵資料時努力掰出來的違章建築!你已經明確知道有車沒車了,別管我的那些舊程式了!直接打掉重做!她也如釋重負,只用一天就重寫好了她的新程序。而且理論上一定比我之前的軟體辨識穩定度好很多!

所以千萬不要因為寫程式困難就被很大的程式迷惑了!畢竟我們寫程式的目的是要解決問題,如果不能針對問題對症下藥,堆砌再多的程式也未必會有正確答案的!即使你堆出來的「程式堆」真的可以跑出答案,效率也是很低的!就是跑得很慢。而且當客戶問你是怎麼算的?你也答不出來!只知道是幾百個程序中的某一個矇對了!

這就是深度學習做事的方式,我是絕對不會寫這種軟體的!所謂深度學習就很像一位國家元首組織內閣,總統未必懂環保署長作的事,他們只是用很多現有的影像辨識方法堆砌起來,如亂槍打鳥,看看哪種方法加上參數調整可以找出最可能的正確答案?當你對辨識目標所知甚少時,可以得到速效,一下子就可以辨識到七八成。但是這種作法對於「影像辨識」技術的研究本身而言毫無貢獻!只能算是猜答案的技巧!不要誤會「用深度學習」作「影像辨識」的人就是影像辨識專家,他們根本不是!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=115059225