· Joseph · Side projects  · 3 min read

[Side project] KinectV2 applications migrates to OpenPose

OpenPose經過了三個多月的努力,終於完成了偵測器的轉換。 會有這次的side project是因為剛好看到OpenPose這套人體姿態辨識的AI函數庫,只要用單單一個RGB camera就可以偵測出人的動作,這讓我想到以前解決Asus xtion pro停產的問題,就是要轉換轉換Asus xtion到KinectV2。現在KinectV2雖已停產,但網路上還是可以透過各種管道買到KinectV2,我就想趁這機會把KinectV2轉換到OpenPose試試看,看未來是不是只要一個RGB camera,就不用再擔心KinectV2真的買不到的問題了。

OpenPose: CMU-Perceptual-Computing-Lab / openpose

他在安裝上還是有一些環境的限制,實際可以參考這裡,才不會鬼打牆太久。

接下來我就來分享一下轉換的方法。一張圖道盡前言萬語。 flowchart

Code是不能講得太明白,不過應該流程圖就能推知一二。最難的就是Transform這一層,要把OpenPose的座標空間跟KinectV2做對應,才能在進入程式時順利進行。以前KinectV2轉xtion OpenNI的時候根本是悲劇,那時候又用了一個不再繼續維護的套件ZigFu,整個包得死死的,所有資料型態跟資料結構都要自己去猜。還好從那之中學到很多,這次的轉換才能順利一點。

另外Transform這一層還可以做很多應用,包含過濾特定物件、物件取代、或特定的辨識,甚至是之後有更好更快的演算法,都可以在這一層做調整跟測試。中間有一些商業機密不太能公開,不過如果有類似問題歡迎私訊,我們很樂於分享我們的經驗。

Related Posts

View All Posts »
System design - A Key-value Store

System design - A Key-value Store

今天要來筆記的是Key-value Store,是一種非關聯式資料庫,也就是一般用在redis, Amazon DynamoDB, 跟 Memcached裡,儲存資料的方法,Key是unique的、為了效能要越短越好;Value則可以是字串、List、Object、或任意資料結構。而這篇會講到如何設計一個Key-value store去達成get(key), put(key, value)、以及他們可能會遇到的問題。

Algorithm - hash map and set

Algorithm - hash map and set

import { YouTube } from 'astro-embed'; Set and Map 平常就有在用,map存的是Key-value pair、Set存的是unique value。而且操作上來說平均都是O(1)時間複雜度。這篇就來看看他們適合解哪些題型吧。

System design - Consistent hashing

System design - Consistent hashing

ByteByteGo這篇介紹的是一致性雜湊,一般來說會用到雜湊,目的是為了把流量透過固定的演算法,分散到某台機器上面,那什麼是一致性雜湊,不好的雜湊演算法又會有什麼問題呢?這篇筆記來說一下ByteByteGo怎麼介紹的。

System design - A rate limiter

System design - A rate limiter

這篇要介紹的是Rate Limiter,是ByteByteGo System design裡面第一個design環節。現在很多後端主流框架都有內建或有對應套件,但對應的演算法卻被封裝起來,知其然不知其所以然。 今天這篇靠AI生成點簡單的示意圖,讓一張圖道盡千言萬語。