2023/3/31

torchvision datasets to jpg

torchvision 有很多整理好的 datasets。例如 MNIST。
如果要還原回 jpg 檔。
from torchvision import datasets
from PIL import Image

mysets = datasets.MNIST('./mnist')
idx, classes = next(enumerate(mysets))
這樣就取出一個 data,可以看 type,就知道 clases 是 (PIL Image, 數字)
所以把 PIL Image save 就可以。
classes[0].save('aaa.jpg')

如果要讓 dataloader 可以 load,就要依照規定folder structure 來放。

2023/3/25

bookmark : kalmen filter and object detection

要知道object 與自己的相對速度,光靠 object detection 結果,會受到景頭搖動的和 bounding box 跳動的影響。
把這些視作noise,用 Kalman filter 來 track,有: 他是6 年前的 code,所以 用的 ssd-mobilenet,可以試試用新的 Yolo 取代。

這個就是比較新的,用 Yolov4 配上 Kalman filter: 還有這個,moto 車的 FCW,用 Yolo 跟 kalman filter

一般使用 objection detection 做 FCW 的原理,概念而已: 另外。這一篇比較不相關,是用 mmwave + camera (object detection) 做 maching learning 因為提到了fusion,所以加上一個fusion,有對fusion 做一所有 paper 的 view.

2023/3/13

build C++ program with opencv library

如果不是自己 build from source,用 apt install libopencv-dev 就可以裝 distribution 版本的 opencv(4) library
然後因為是 distribution package,用 pkg-config 可以找到:
$ pkg-config --cflags opencv4
-I/usr/include/opencv4/opencv -I/usr/include/opencv4

$ pkg-config --libs opencv4
-lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm 
-lopencv_highgui -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality 
-lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres 
-lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_ml -lopencv_videostab 
-lopencv_videoio -lopencv_viz -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs 
-lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core
所以build 的時候就:
g++ main.cpp `pkg-config --cflags --libs opencv4`
就可以了。

2023/3/9

some notes on python tkinter

要寫一個開啟 jpg file,show 圖,並且在 status bar (bottom) 顯示 mouse 所在位置對應 jpg file 的 X, y (rgb) 值。
然後windows 要能resize.

結果寫好久...
一些注意事項。

tkinter 的 window 沒有 status bar 這個 option。
所以是用 label 來做。
show jpg 也沒有特別的 widget,所以也是用 label 來做。

windows 上 widget 的 layout 就是先放先贏 (先 pack 先放)。
所以都是 fill, expand 的話,先 pack 就佔掉全部的 window 了,後來 pack 的 widget 會被蓋住看不到。