
上面是我的貨櫃碼辨識引擎軟體的執行畫面,這個軟體的辨識核心也研發好幾年了,至今只賣出了兩套?距離回收應有的研發成本還極為遙遠!這絕對不是我的軟體辨識效能不好,而是這種客戶實在很少!正如我的聲納軟體可以做到世界頂尖的水準,很多國際級聲納廠商軟體都做不到的功能我也寫得出來!但是如果要靠賣聲納軟體創業,我早就餓死了!我找不到分布全球的極少客戶嘛!
目前有位客戶正在拿這個軟體測試,也是展示給他們的國外客戶看,結果軟體無預警的「閃退」,也就是程式忽然自己關掉,還沒有任何當掉的訊息?但是這個軟體已經在國內一個大型物流業者的系統中運作大半年了!從來沒出現過類似狀況!同樣架構的車牌辨識引擎更肩負全台灣所有路邊開單的車牌辨識作業,也不曾出錯!所以即使是假日,收到這個訊息,我還是很積極的溝通處理。
這個軟體的運作方式是作為一個雲端辨識系統的核心,需要辨識的影像會上傳到某個影像檔,客戶端程式會以網路訊息的方式告知我的這個軟體檔案路徑,這個軟體就會去讀取影像檔加以辨識,再將辨識結果以網路文字訊息回傳到客戶端軟體。而且是內建多執行緒的架構,所以即使短時間內湧入大量資料也可以排隊慢慢處理,不太可能當掉的!
經過溝通詢問才知道,他是用自己的程式從某個攝影機畫面中以高頻率還高解析度擷取影像,存檔之後呼叫我的程式辨識,所以辨識要求的流量與運算量都很大,而且多數影像中並沒有貨櫃碼出現!我一聽就知道我的軟體會當掉的原因了!也立即設計了可以消極避免這種狀況的限時放棄辨識的逾時門檻功能。
我設計這個軟體的基本假設是沒有時間壓力的!就是一個影像中「應該」有至少一個合理的貨櫃碼目標,如果SOP找不到,就會窮盡一切方法繼續找到我的辨識力的極限!所以正常有貨櫃碼的百萬畫素影像只需0.1到0.2秒就可以結案,兩百萬畫素的也只需要0.3到0.4秒。反而是根本沒有貨櫃碼的影像會拖延兩三倍的時間,甚麼辨識絕招撇步都用盡了,才會確定放棄!
所以大量的無貨櫃碼影像反而讓這個軟體負荷特別重!相對的,我的動態車牌辨識軟體設計的邏輯就是會「趕時間」的!基本的SOP辨識無結果就會立即放棄,等待截取下一張距離角度不一樣的同一車輛影像!不會執著一定要在單一影像上盡力辨識到極限的!
太多的無碼影像,加上高頻率的持續辨識要求,就會讓輸入資料辨識不及開始塞車了!未做完的辨識資訊會逐漸累積到超過作業系統允許我的單一程式使用的上限。又因為我的程式是多執行緒的,當記憶體超過上限的時機是發生在背景執行緒的執行中時,就會發生閃退的現象了!如果我不用多執行緒的話,當機時就會出現錯誤訊息了,但是整體辨識速度就會慢好幾倍!
這就是我的客戶誤將「靜態」辨識引擎當作「動態」軟體使用的誤會!一般來說,這種辨識引擎都是用於手拍或觸發機制控制拍攝的單一影像,基本上就是會有貨櫃碼(或車牌)目標的!剛好沒有拍到目標會讓我的軟體窮忙的案例算是極少數例外,就不會造成太大的問題,如果絕大部分是無目標的空影像?那就糟糕了,即使不會當機也是很浪費資源與能源的!設計逾時門檻設定,就是可以限制單一案例最高的辨識時間,不會在無貨櫃碼的影像上浪費太多資源。
我的客戶也是專業科技公司老闆,我一講他就聽懂了!我也藉此機會跟讀者解釋一下,為何我的車牌辨識軟體明明辨識核心是一樣的,卻分為靜態與動態辨識兩大類?就是考慮到這種不同的資料狀態與使用情境!把靜態當動態用就會浪費資源讓辨識系統耗時費力辨識根本沒目標的影像。相反的,把動態軟體當靜態使用,則會浪費我的高難度辨識能力,只能辨識較清晰簡單的影像了!
目前我的貨櫃碼辨識也還沒刻意做出「動態」辨識的軟體!如果客戶需要,我也可以很快做出來的!所以你開著可以一秒加速到上百公里的超跑去載貨或登山是找自己的麻煩!不但效果不好還會把車子弄壞!甚麼用途應該買甚麼車?你應該先找汽車專業廠商問清楚的!我的軟體如果選對用對也一定會讓你滿意的!
限會員,要發表迴響,請先登入




