(圖/shutterstock)
作者:鄉下老師
剛開始學程式的時候,
最敬佩的是高手們可以
動輒寫出幾千行甚至幾萬行的程式!
天啊!那些人的腦袋怎麼那麼厲害?
Hold得住這麼複雜龐大的邏輯?
事實上很多程式師也以此嚇唬外行人,
即使已經沒用的程式也會永遠留著充場面,
反正老闆看不懂程式,
越多行表示越辛苦,沒有功勞也有苦勞嘛!加薪吧!
程式碼太多根本不是好事
現在經過千山萬水的歷練,我也是程式高手了!
以結果論,我已經寫出來的軟體數量與品質都是很嚇人的!
但是我卻反而覺得程式碼太多根本不是好事!
程式多表示運算多,
執行時間可能較長,速度慢當然不好!
更糟糕的是:多做多錯!
程式越多出錯的機會就越多,維護除錯也越困難!
所以我總是太急於將暫時不用的程式碼清得乾乾淨淨,
常常發現還是有用時得補寫回來!
我那個包山包海甚麼怪車牌都能辨識的辨識核心只有三千行,
四車道動態辨識軟體的主程式不到一千行,
整個軟體編譯完的 EXE檔案只有 300多 K!
連字型資料都包在這 300K裡面了,
沒有額外的資料檔哦!
現在一般手機拍的一張照片都不只 300多K!
可見我的程式有多小?
六萬元買一個只有 300多 K的軟體,好像很沒價值?
但是重點當然不是程式大小,而是他能作到的事情!
會想到這個,是因為我和 RD最近在研究
停車場情境下車輛進出時的動態偵測,
就是直接用影像辨識有無車輛進入,
做得差不多了,我希望 RD想想
如何與之前我的動態車牌辨識統計方式整合?
幫助我的車牌判斷更準確更可靠。
之前我們的資料只有連續辨識的車牌結果,
老實說我是「間接」知道有車進來的!
有車牌就當有車嘛!
但如果辨識不出車牌的時候我就會「以為」沒車了!
結果可能是一輛堆高機或農用鐵牛車。
相反的,如果其實沒車,
我卻誤認了環境中的其他東西是車牌,那就詭異了!
明明沒車在畫面中,卻有一個車號冒出來?
那就是客戶消遣我的「幽靈車」了!
現在我們已經有了
能直接辨識有車沒車的穩定辨識結果,
上述的問題就不會發生了!
即使有人拿張印有車牌的 A4紙張想闖關都過不去的!
因為人的形狀根本不像一輛汽車,
我的軟體會看到的!
交代工作之後,RD整個下午都眉頭深鎖
在研究我原本寫的複雜統計程式,
我一看到就說:別看了!
那些複雜的統計都是因為
我根本「不確定有沒有車?是不是同一輛車?」,
少了關鍵資料時努力掰出來的違章建築!
你已經明確知道有車沒車了,
別管我的那些舊程式了!直接打掉重做!
她也如釋重負,只用一天就重寫好了她的新程序。
而且理論上一定比我之前的軟體辨識穩定度好很多!
程式越多,效率越差!
所以千萬不要因為寫程式困難就被很大的程式迷惑了!
畢竟我們寫程式的目的是要解決問題,
如果不能針對問題對症下藥,
堆砌再多的程式也未必會有正確答案的!
即使你堆出來的「程式堆」真的可以跑出答案,
效率也是很低的!就是跑得很慢。
而且當客戶問你是怎麼算的?你也答不出來!
只知道是幾百個程序中的某一個矇對了!
這就是深度學習做事的方式,
我是絕對不會寫這種軟體的!
所謂深度學習就很像一位國家元首組織內閣,
總統未必懂環保署長作的事,
他們只是用很多現有的影像辨識方法堆砌起來,
如亂槍打鳥,
看看哪種方法加上參數調整可以找出最可能的正確答案?
當你對辨識目標所知甚少時,
可以得到速效,一下子就可以辨識到七八成。
但是這種作法
對於「影像辨識」技術的研究本身而言毫無貢獻!
只能算是猜答案的技巧!
不要誤會「用深度學習」作「影像辨識」的人
就是影像辨識專家,他們根本不是!
本文由 鄉下老師 授權轉載, 原文 於此
未經授權,請勿轉載侵權!
(責任編輯:CMoney編輯 / Alodia)
(本文圖片來源:shutterstock)
打破一成不變,就差這一步!
六個月學程式 脫離魯蛇人生!
想學程式、成為工程師卻怕沒基礎嗎?
來這裡全程免費,給你專業訓練
6 個月,你也能成為 專業軟體工程師!
名額有限>>點我報名!
詳細活動介紹>>點我查看!
有問題歡迎私訊粉專:從0開始學程式!
或是寄信到:engineertraining@cmoney.com.tw