Skip to content

リアルタイム信号処理 Real-time signal processing

映像や音声などのディジタルデータは時々刻々と入力されます.これらのデータはフィルタリングする,認識するなどの「信号処理」を加えることが一般的です. 1920x1080画素のFHDビデオの場合,1画素あたり約8ナノ秒以内で処理が完結する必要があります. 時々刻々と到着するデータを取りこぼしたり,待たせたりすることなく決められた時間内に完結する処理をリアルタイム処理と呼びます.非リアルタイム処理の場合,映像であればカクカクする,時々止まるなどの不快な現象が発生します.スマートホンなどのアプリで一見するとリアルタイムに見える処理は,実は,内部で映像の縦横の大きさを縮小(解像度低下)し,サムネールのような大きさの画像を使うことでリアルタイム処理に見せかけています.

スマホでYouTubeを見るときはこのような「ごまかし」リアルタイム処理でも実用上問題はありません.しかし,解像度低下は画像内の重要な要素の「消失」を招くことから,工場やプラントの制御,自動車等の自動操縦などcriticalな応用領域では重大な事故につながり,利用すべきではありません.

本研究室では,解像度を一切下げることなくリアルタイムに動作する信号処理の実装に取り組んでいます.リアルタイム動作を保証するために,ハードウェア/ソフトウェア協調設計を導入しています.ハードウェア設計ではXilinx FPGAを利用し,HLSを用いた高位合成とVHDLを用いたRTLレベルの設計を組合せています.ソフトウェア設計はベアメタルとLinuxを併用しています.FHD(2K, 1920x1080p, 30/60fps)およびUHD(4K, 3840x2160p, 30/60fps)映像入力に対し,完全なリアルタイム動作を保証する物体追跡や基本的な画像処理(色変換,線形フィルタリングなど)を実装しています.

VGA Camera Tracking System

Tracking Camera System based on Virtex4 + VGA Camera (640x480@30i) example[1]. This system tracks the target (a red "cone" in this demo) in realtime. The camera always turns to the target using pan-tilt unit. Tracking is implemented by a cutomized CAMSHIFT algorithm and the PTU controll uses a PID rule.

Tracking CameraSystem architecture overview

FHD Camera Tracking System

Tracking Camera System based on Zynq + HDMI Video (1920x1080@60p) example[2][3][4]. This system tracks the target (a boy's face in this demo) in realtime. This system absolutely guarantees a hard realtime at 1920x1080, without any "image resizing". Tracking SystemSystem architecture overview

4K UHD Camera Real-Time Tracking System

Tracking Camera System based on ZynqMP + 4K UHD Video (3840x2160@30p) example. This system is able to track a small size target in realtime. This system also absolutely guarantees the hard realtime at 3840x2160, without any approximation such as "image resizing".

System architecture overview

Web interface for bare-metal FPGA [5]

Browser-based GUIs utilizing Web APIs enable intuitive operation, visual information presentation, and the design of development screens tailored to specific purposes, making them effective tools for supporting system development. If such GUIs can be incorporated into FPGA development, it would visually simplify tasks like register manipulation and data verification, thereby improving debugging efficiency. However, implementation examples and information on using GUIs in bare-metal FPGA (not use Linux OS) development are scarce, making this approach uncommon as a development method. Therefore, this study designed an interface to connect a web browser with an FPGA by websocket and built a system that allows GUI-based operation and result visualization in a bare-metal environment. Additionally, the functionality was verified, demonstrating potential contributions to headless development environments.

System overview (case of a matrix multiplication off-load)

Face Tracking

顔のパーツ(顔器官,landmark)を追跡するシステムです[6].計算量の多いHoGとリアルタイム処理が可能なCAMSHIFTを並列実行し高速化を達成しています. 残念ながらFHDでリアルタイムにはまだ動きません.

Eye Tracking

Webカメラを使って視線を追跡するシステムです[7]. 軽量化のためにPLS回帰を使っています.Matlab, Python, Rustで動作します. 追跡はリアルタイム動作しますが,学習に時間がかかる課題があります.

青色×:光学式アイトラッカで追跡(真値とす),黄色●:Webカメラで追跡

References


  1. Y. Takagi, Y. Sugihara, T. Ukai, S. Fukuma, S. Mori, "Co-Designed Object Tracking Camera System Using FPGA," 27th Workshop on Circuits and Systems, pp.86-91, Aug. 2014. ↩︎

  2. S. Fukuma, "An Introduction to Real-time Image Processing System Design with FPGA," IEICE Technical Report SIS2019-19, pp.59-64, Oct. 2019. ↩︎

  3. 原 佑輔, 福間 慎治,"積分画像を用いた高速重心計算とリアルタイム物体追跡システムへの応用," 信学技報,vol.124,no.162,SIP2024-48,pp.25-30, Aug. 2024. ↩︎

  4. 原 佑輔,福間 慎治,"積分画像による重心計算を用いた物体追跡システムのFPGA実装," 信学技報,vol.124,no.330, RECONF2024-110,pp.23-28, Jan. 2025. ↩︎

  5. 戸崎 絢介,原 佑輔,福間 慎治, "ベアメタルOSで動作するFPGAのためのWebSocketインターフェースの設計," 信学技報, 信学技報, vol. 125, no. 66, RECONF2025-11, pp. 53-58, June 2025. ↩︎

  6. 水嶋 一太朗, 福間 慎治, 森 眞一郎, "Camshiftと顔器官検出を用いた高速な顔追跡," 電気関係学会北陸地区連合大会,JHES2019, F2-10, Aug. 2019. ↩︎

  7. 畑中 理, 福間 慎治, 森 眞一郎, "画像処理を用いた注視点計測の精度向上に向けた顔器官特徴量の検討," 信学技報 SIS SIS-2020-57, pp.120-125, Mar. 2021. ↩︎