景區AI行人識別調用動態行人識別失敗問題
前段時間我們的景區行人檢測功能一直在項目中進行測試,但是檢測的AI算法沒有達到我們的理想效果,因此我們考慮使用百度AI算法(動態行人識別)來進行調整。在使用GO調用百度AI接口的過程中出現調用失敗的情況:
錯誤信息如下:
此錯誤的信息表示:傳入的圖片格式錯誤。
文檔中image傳入的是base64編碼:
所以是直接傳入的base64編碼,還驗證此編碼是否正確(在html中驗證),傳進去的還是圖片格式錯誤。在進行base64編碼之后還要進行urlencode編碼,所以要做二次操作。
那么為什么需要這么做呢?有三個原因:
1.當字符串數據以url的形式傳遞給web服務器時,字符串中是不允許出現空格和特殊字符的;
2.因為url對字符有限制,比如把一個郵箱放入url,就需要使用urlencode函數,因為url中不能包含@字符;
3.url轉義其實也只是為了符合url的規范而已。因為在標準的url規范中中文和很多的字符是不允許出現在url中的。
注意:還有一些非ASCII字符、一些保留字符(如:&放到url中就無法分割)和一些不安全字符(如:空格、“+”和“%”等等)
通過上述得知:一張圖片需要轉base64之后,在進行urlencode編碼,把最后生成的值轉入image參數中,如下:
escapeUrl := url.QueryEscape(imageBase64) data := strings.NewReader(fmt.Sprintf(`dynamic=true&case_id=%d&case_init=%s&image=%s&area=%s`, case_id, dcase_init, escapeUrl, area))
AI
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。