網路城邦
上一篇 回創作列表 下一篇  字體:
大魚已經入網了就立即收工,極速辨識是這樣來的!
2022/05/31 05:23:18瀏覽1290|回應0|推薦8

要正確辨識如上的貨櫃碼,當然已經不是我的障礙,太簡單了!但是我還在忙甚麼?就是更聰明更快的得到一樣正確的答案!這就是我開發軟體的SOP了!功能完成是第一優先次序,就是辨識一定要正確,辨識不正確其他工作當然就沒有意義了!

功能完成之後的第二步就是「效能」了!簡單說,就是完成工作的速度一定「要快」!最後才是「介面」,就是讓客戶操作時覺得很方便,不必多想,不必多操作很多設定,最好只要按一個鍵(甚至不必按鍵)就可以完成所有的工作!

當然最困難的部份應該是功能的設計開發!最簡單的部分應該是介面,如果有了高效率高能力的演算法,任何軟體公司應該都可以設計出簡便的介面讓顧客滿意的!有趣也最常被忽視忽略低估的研發程序,其實就是「效能」了!

大多數外行人都把辨識速度與辨識核心演算法當作同一件事,只要找到神奇的AI演算法,就可以又神奇又快速的找到答案?其實未必如此!多數情況下,辨識速度是來自「節能減碳」的概念,盡量少做不必要的事情(運算),速度就會快了!這個速差可以達到十倍之多!比你用不用GPU輔助運算的差距還要大很多!這個你知道嗎?

但是如何節省不必要的工作運算呢?前提是:你必須熟知掌握你原始的辨識流程與運算邏輯,如果你不是原始設計者,沒有原始程式碼,或是有程式碼但是看不懂,要讓辨識變快,你只能花大錢買能夠更快速計算的硬體如GPU之類的東西了!那些大談哪些硬體可以提升辨識速率的傢伙,其實是技術核心之外的「低階」技術人員,別太高估他們了!

簡單說,讓程式變快效能提高的關鍵是「程式速度優化」!這件事幾乎只有演算法的發明者與程式的原始寫作者才能做!我做的專案要請我的RD優化都很難,反之亦然!很微妙的,真正讓辨識速度更快的技術核心距離一般人沒有更遠,其實是更近!如上的案例,請大家先看下面兩圖:

大家看到結果是我正確的「找到」那個貨櫃碼字串了!但是也看到畫面上好多字都「可能」是貨櫃碼哦!當我一一檢視測試他們是不是我要的答案時,我的辨識程式當然就「變慢」了!如果沒有那些額外的字,我的辨識速度或許可以快一倍吧?

事實就是如此!地毯式搜索「看到」圖上所有可能的目標是無可避免的!但是你要為其實不是答案的目標花多少時間呢?如果可以更快知道那些不是我要的目標,或者提前「知道我已經找到真愛」,我不需要繼續找對象了!就可以節省不必要的運算時間,程式就會變快了!

如上例中,如果依序(自左而右,自上而下)尋找已經找到UACU 350059 022G1這兩組目標,我還需要繼續搜尋TARE等等目標嗎?當然就不必了!重點是此階段其實我們還沒有比對字模,不確定真的已經找到正確答案,大多數的演算法一定是繼續找到完的,我也要這樣嗎?那我的辨識程式就快不起來的!

好高興,我現在不是教授,我只是一個商人!所以我就作弊了!

如上程式過程,我會發現超多個字組目標,但是過程中我會不斷檢查是不是已經有收集到我需要的字組?如果有?我就會立即停止搜尋!趕快收工將撈到的大魚送上岸,送到餐廳上桌!我的程式效率看起來就很高了!弄錯的機率大約是十分或百分之一,即使真的搞錯還可以回頭把偷懶沒做的工作做完!真實世界就是這樣運作的,我只是模仿一般人而已!

總之,這樣的玩法,可以讓我的整體辨識時間減少非常非常多!有多快呢?說個數字給你聽:4851920X1080的照片辨識貨櫃碼,辨識率百分百,平均辨識時間190毫秒,就是0.19秒一張!有甚麼AI軟體,或軟硬體搭配系統可以辨識得比我更快?知道的麻煩跟我講一下!200萬畫素的影像辨識時間低於0.2秒?這鐵定是一個很難跨越的里程碑!來打我啊?

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

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