「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2021年7月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
前月
翌月
Entry Archive
2024年11月
2024年10月
2024年09月
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
こないだのロボット
ロボット行ってきた
こないだのくれじークライマー全国大会2024予選
マウス修理した
訃報
ミカド行ってきた
LANケーブル交換した
MFT2024行ってきた
こないだのロボット
ロボット行ってきた
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2850)
PIC
(47)
AVR
(341)
Arduino
(446)
Raspberry Pi
(193)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(127)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(158)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
処理速度を上げたい
Python
/
2021年07月03日
ここんところちょっとずつ弄ってるPythonプログラム。
OpenCV使って、ビデオファイル読み込んでフレーム単位で
変化があるかどうか(フリーズしてるかどうか)をチェック
するプログラムを書いてるんだけど、なかなか思うような
パフォーマンスが出せなくて困ってるとこ。
VGAサイズとか、QVGAサイズとかなら、それなりに高速に
処理できるんだけど、FHDサイズとかになっちゃうと、
映像の実時間の10倍とか20倍とかの処理時間が掛かっちゃって、
全然現実的じゃない。
なので、処理時間が遅い原因と、どうしたら高速化できるか
について、実験しながらプログラムをいじってたとこ。
まず、一つの仮定としては、画面の左上から順々にピクセル
単位で走査してるんだけど、画面四隅は比較的変化が少ない
場合が多いので、真ん中から広がるように走査していく方が
良いんじゃないかな?と。異なるピクセルを見つけた時点で
次のフレームに移れるので。
で、ロジックをいじって、操作する順番を変化させてみた。
…結果、あまりパフォーマンスが上がらない。ロジック的
には、それ以上劇的に速くできそうな方法は思いつかない
のと、多分そもそも、ロジック以外の部分で処理時間を
食っているっぽい。つまり、OpenCVが映像ファイルから
フレームを取り出すときに、numpy形式に変換しているあたり
が遅いんじゃないかなぁ?と。
骨董品の第4世代Core i3使って画像処理するのが間違いと
いえばそうなんだけど、うちには桁違いに速いマシンが
他にあるわけじゃないし、まぁ、仕方ない。
(でも、驚いたことに、自分で書いた処理自体はシングル
スレッド的な単純なものなんだけど、ライブラリ内部では
マルチスレッド対応しているみたいで、CPUメータ見ると
4コア…正確には2コア4スレッド…全部に負荷が分散されて
いることが判った。偉いね。すっごいCPU使ったら、
ちゃんとガンガン処理が回るんだろうなぁ)
気を取り直して、全フレームチェックすることを放棄する
モードも取り付ける。具体的には、5フレーム単位で飛ばし
飛ばしチェックするとか。フリーズする場合は、だいたい
数秒とか止まるみたいなので、それを検知できることに
主眼を置こうと。あと、走査するラインも、全行じゃなくて
5行おきとかにしちゃっても、実質的にはあまり影響ないはず。
で、やってみた。走査するラインを間引く方法では、ほとんど
速度が上がらない。つまり、ロジック以前に、OpenCV側で
映像ファイルからフレームを切り出してnumpy形式にするって
時点で、かなり時間掛かっちゃってるってことが見えてくる。
で、フレーム間引きの方は、実際に間引いたフレームの割合
だけ速くなるって程の効果は無いけど、そこそこ期待に見合う
効果は得られた。よし。
あと、明らかにフリーズしてるフレームがあるのに、チェック
から漏れるものがあるので、その辺もなんとかしないといかん。
映像(というか、多分圧縮の具合)によっては、全ピクセル
が完全一致しているかどうかでチェックできるんだけど
(さすが、フレーム間でも圧縮を掛けている結果)、映像に
よっては微小なノイズを拾っているみたいで、それが異なる
映像とみなされてしまっているみたい。
なので、ある程度の許容範囲誤差を認めて、その範囲内なら
同一ピクセルであると判断するようなロジックに変更。
目下実験中。なんか思ったような効果になってない。なにか
numpy形式のピクセルデータの扱いを間違えているのか…。
なかなかうまくいかないなぁ。
まぁ、入力ファイルをファイルダイアログで拾えるように
したり、処理結果を描きだしているテキストボックスの中身
をファイルダイアログでファイル保存できるようにしたりと
いった、UI周りは少し進展したので、とりあえずロジック
の方に注力しよう。
https://www.youtube.com/watch?v=Z9ki00Z5SWg
>プログラミング学習の救世主?任天堂の“絶対に挫折
>させない”プログラミングゲームvs片渕アナ
飛ばし飛ばしみたんだけど、なんかこういうプログラミング
教育(?)環境って、なんかニンテンドーが作るとすごいな。
https://www.fnn.jp/articles/-/203960
送り付け商法。すぐに捨てても良くなるらしい。ほほう。
https://news.yahoo.co.jp/articles/9890937f0673f003c5d532a6b500b21da0ad9aa5
>米、日本の技能実習を問題視 国務省が人身売買報告書
どんどん問題として取り上げればいいと思う。中国の香港
やチベットの問題なんかと同列の問題として。
https://twitter.com/vgm_robot_GACHA/status/1409430859296382976
RB26DETTのガチャガチャ。これは欲しいな。
ちなみにオイラは32に思い入れがあるので、32のが欲しい。
https://twitter.com/lovyan03/status/1410397318923255808
>M5製ライブラリ、全般的に他所のライブラリをライセンス
>無視してモリモリ取り込んだうえでMITライセンスで公開
>しているので大変おっかない
おっかないな。
https://mainichi.jp/articles/20210630/k00/00m/040/237000c
1回の接種でいいと思ってるなら、本人が1回だけ接種して、
人ごみに出かけてみればいいんだよ。(黄金律テスト)
コメント (
0
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【コメント募集中】スタッフの気になったニュース
@goo_blog
【お知らせ】
ブログを読むだけ。毎月の訪問日数に応じてポイント進呈
【コメント募集中】goo blogスタッフの気になったニュース
gooブロガーの今日のひとこと
訪問者数に応じてdポイント最大1,000pt当たる!