輸入酒販売はじめました。 https://bbtech-liquor.oss-ap-northeast-1.aliyuncs.com/www/1.html -7ページ目

輸入酒販売はじめました。 https://bbtech-liquor.oss-ap-northeast-1.aliyuncs.com/www/1.html

輸入酒販売はじめました。
https://bbtech-liquor.oss-ap-northeast-1.aliyuncs.com/www/1.html

パブスナック店舗前の人流・交通量調査を実施。

録画した映像をVLCで再生しヒト、クルマを数えていたがさすがに時間がかかるので、OpenCV / java環境で特徴量の変化からヒト、クルマ出現タイミングを抽出し、当該画像を確認する仕組みを構築。

 

撮影した店舗入り口前道路。

OpenCV java でヒトなど出現時点を特定し、画像一覧をWebブラウザで確認する。

 

結果:土曜日 30分間毎

クルマ通りが非常に多いことがわかりました。

多いときには、1分間に5台も店舗前を通過していることがわかりました。

クルマから見え易い看板の交換、見直しを店舗に提案しました。グッド!爆  笑

 

結果:平日午後

平日もクルマ通りが多いことがわかりました。

 

 

「未来」さんご協力ありがとうございました。グッド!グッド!グッド!

■お店情報

チャイナパブ 未来

046-251-2930 〒252-0005 神奈川県座間市さがみ野2-5-17メゾンさがみ野101

 

よろしくお願いいたしまーーす。

 

 

 

#チャイナパブ未来

#チャイナパブ
#さがみ野
#昭和レトロ
#スナック
#中国パブ

 

///////////////////////////////////

調査環境詳細:

 

カメラ:

 ミニカメラ A9 WiFi のような商品名

 数年前にaliexpressで200円くらいで購入

 32GBくらい(FAT32)MicroSDメモリ

 モバイルバッテリーに接続して使用

 

 このカメラは2.4GHz WiFiに接続して使用し、携帯アプリからモニタと設定など出来る。

 <=携帯用アプリ(無料

Setting/Recording settings/Video mode = All-day recording にしておくと1分毎のaviファイルに映像が記録・保存される。

保存される動画ファイルの諸元:

1秒10フレーム、音声付きです。

 

ffmpeg version c30f360955 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10-win32 (GCC) 20220113
  configuration: --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --extra-libs= --extra-ldflags='-static -static-libgcc -static-libstdc++' --extra-ldexeflags='-static -static-libgcc -static-libstdc++' --pkg-config-flags=--static --disable-autodetect --prefix=/ffmpeg-static/dist/windows/x86_64//ffmpeg --enable-version3 --pkg-config=pkg-config --enable-runtime-cpudetect --enable-pthreads --disable-w32threads --enable-libtheora --enable-libvpx --enable-libvorbis --disable-indev=sndio --disable-outdev=sndio --enable-neon --enable-libopenjpeg --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-openssl --enable-libvo-amrwbenc --enable-libopus --enable-libx264 --enable-libx265 --enable-libaom --enable-libwebp --enable-libxvid --enable-libmp3lame --enable-zlib --enable-ffprobe --enable-pic --disable-doc --enable-demuxer=dash --enable-libxml2
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
[aist#0:1/pcm_s16le @ 000001bff7e4a080] Guessed Channel Layout: mono
Input #0, avi, from '20250607\202506071604.avi':
  Duration: 00:00:59.90, start: 0.000000, bitrate: 2065 kb/s
  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 640x480 [SAR 640:480 DAR 16:9], 1936 kb/s, 10 fps, 10 tbr, 10 tbn
  Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, 1 channels, s16, 128 kb/s

 

ffmpegで1秒10コで画像として切り出します。

 ffmpeg.exe -i 202506071604.avi -r 10 202506071604_%03d.png

 

1分のaviファイルのサイズは15MBくらい、1時間で900MB(≒1GB)、丸一日録画しても32GBSDメモリーに納まります。

 2025/06/07  16:05        15,467,100 202506071604.avi

※SDメモリー内は、上記のようなファイル名ではなく、時間毎のディレクトリに保存されているので、扱いやすいようファイル名のリネーム、異動をします。(おこのみで

 

OpenCV java @Windows

ネットから以下のファイルを取得

 opencv-4110.jar

 opencv_java4110.dll

javadoc:

 

java内の処理の流れ

// 特徴量抽出器
ORB orb = ORB.create();

// 比較画像
Mat mat1 = imread(fileName1);
Mat mat2 = imread(fileName2);

// 特徴量検出
orb.detect(mat1, keyPoint1);
orb.detect(mat2, keyPoint2);

// 計算
orb.compute(mat1, keyPoint1, descriptor1);
orb.compute(mat2, keyPoint2, descriptor2);

// 比較
bfMatcher.match(descriptor1, descriptor2, dmatch);

// distanceの総量も求める
for (DMatch dm : dmatch.toList()) {
  distance_total += dm.distance;
}

// 画像2つを比較した結果のdistanceの総量の変化により、画像の変化を捉える
// 変化量が閾値以上の画像=ヒトなど出現として、ピックアップする

distanceの総和の変化とdistanceの総和の増分の変化

全く同じ画像、Σdistance=0となる場合があるので、その値は除外する(赤字×印)

増分の緑楕円部分を抽出したいので、閾値を設定し、それ以外の部分を除外する。

 

緑楕円部分の画像をWebブラウザで確認出来るように、適当なhtmlファイルを生成する。

中身:

<img src="20250607\202506071604_156.png" />

<img src="20250607\202506071604_248.png" />

・・・

<html>や<body>が無くてもブラウザでいい感じに表示してくれます。(firefox

 

※物体認識まで実装すれば、手動でカウント作業がなくなりますが、今回は修験時点の抽出まででした。笑い泣き