日々精進

新しく学んだことを書き留めていきます

pythonからheadless chromeを実行すると「Message: unknown error: net::ERR_CONNECTION_TIMED_OUT」エラー

IT

原因はProxyの設定がないため。Proxy環境で動かす人が少ないのか、情報が少なくて困った。。 以下のようにオプションでProxyを設定すると直った。 なお、 --proxy-server=http://domain.com:8888 のようにdns名でProxyを設定すると「ERR_NO_SUPPORTED_PROXIE…

cv2.VideoCapture.get(cv2.CAP_PROP_FRAME_COUNT)が返す総フレーム数は正確では無い

AI

以下によると、get(cv2.CAP_PROP_FRAME_COUNT)は動画の大体の総フレーム数を返すらしい。 stackoverflow.com 正確な総フレーム数を計算するのって時間かかるのかな・・かなり謎な仕様だ。

conda env create -f environment.yamlを実行すると「An unexpected error has occurred. Conda has prepared the above report」エラー

IT

原因はenvironment.yamlがUTF-16LEでencodeされていたことだった。 BOMなしUTF-8にすると直った。

EaseUS todo backupでバックアップを復元すると「ターゲットディスクに十分な空き容量がありません」エラー

IT

バックアップ取ったのと同じディスクに復元しようとしているのに容量が足りないとはなぜ・・と思っていたら 原因は復元先のディスクにEFIシステムパーティションが残っていることだった。 セクタバイセクタで復元しようとしていたからちょっとでもバックアッ…

ピボットグラフでデータが無いところの間隔を詰めないようにする

IT

最近便利に使っているエクセルのピボットグラフだが、デフォルトではデータの無い部分を描画しない。 なので、例えば多峰性のヒストグラムをかいた場合、各ピークが結構離れていて間にデータがない区間があるとその部分は詰められるのでピーク同士は結構近く…

cv2.imreadがNoneを返す・cv2.imwriteがエラーを吐く

IT

cv2.imread、cv2.imwriteは日本語に対応していないので、パスに日本語が入っているとNoneを返したりエラーになったりする。 なので以下で紹介されているコードを使って回避した。ありがたや~ qiita.com

データの可視化はエクセルが便利

IT

データ分析のためにグラフを描く場合、matplotlibを使うことが多かったけど、結構時間がかかるんだよな。。(慣れてないだけかも) エクセルのピボットグラフでやってみたら思った以上に簡単に、インタラクティブにグラフを描けるのでビックリした。これはす…

COCO minivalとは

AI

Browse the State-of-the-Art in Machine Learning | Papers With Codeでよく見るCOCO minivalとはなんぞやと思っていたが、 COCOのvalのうち5000件を取り出してvalidation setにしたものらしい。 物体検出ではこのデータセットを使うのが標準的らしい。なる…

aws s3 syncやaws s3 cpを速くする

AI

aws s3 syncはバケットに入っているファイルが多いほど重くなる。 aws s3 cp --recursiveを使った方が良い。 aws configureでmax_concurrent_requestsの値を大きくすると速くなる。 参考: stackoverflow.com aws.amazon.com docs.aws.amazon.com

ndarrayのマイナスの値を0にする

AI

arr[arr < 0] = 0 でいける。簡単にかけていいなぁ。 参考: www.relief.jp

「error: (-2:Unspecified error) in function '__cdecl cv::impl::`anonymous-namespace'::CvtHelper<struct cv::impl::`anonymous namespace'::Set<3,4,-1>,struct cv::impl::A0xe227985e::Set<3,4,-1>,struct cv::impl::A0xe227985e::Set<0,2,5>,2>::CvtHelper(const class

AI

cv2.cvtColorに渡すndarrayの型をunit8にしたら直った。 参考: qiita.com

cv2.imwriteで書き出すファイルのパスに日本語が入っていると文字化けする

AI

OpenCVがマルチバイト文字に対応していないのが原因。 以下の記事にcv2.imwriteを使わずにファイルを書き出す方法があるのでこれで解決出来た。 qiita.com

ArcFaceを動かすと「Shape of unspecifie arg: conv0_weight changed. This can cause the new executor to not share parameters with the old one. Please check for error in network.If this is intended, set partial_shaping=True to suppress this warning」エラー

AI

ArcFaceはinputの形としてchannel firstを想定しているが、channel lastで渡すとこのエラーが出る。 エラーメッセージから原因が想像できない。。 channel firstに変換すると直る。 参考: github.com

ArcFaceを動かすと「Object arrays cannot be loaded when allow_pickle=False」エラー

AI

原因はnumpyのバージョン1.16.3からload関数の仕様が変わったため。 np.load('/path/to/file.npy', allow_pickle=True)のようにallow_pickle=Trueを追加するか、 numpyのバージョンを下げる。ただし、np.loadで悪意のあるファイルを読み込むと任意のコードが…

.gitignoreで特定のファイルだけ無視しない設定

IT

以下のように書きたくなるが、これはだめ。 tmp/ !tmp/tmp.txt フォルダの無視設定は後から書き換えられないらしい。以下のように各フォルダ毎に除外設定と例外設定をする必要がある。 tmp/* !tmp/tmp.txt tmp/tmp2/* !tmp/tmp2/tmp.txt なぜこんな仕様なん…

MS COCO形式のAnnotationのフォーマット

AI

以下にフォーマットとコードサンプルがあり参考になりました。COCO形式のAnnotationを生成するのは結構めんどい。。 qiita.com qiita.com

「ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C header, got 192 from PyObject」エラー

IT

原因はnumpyの不具合。 バージョン1.14.2だとだめで、1.16.0だと直る。 参考: github.com

機械学習モデルを作るのに必要な学習データ量の目安

IT

・以下のサイトに記載されている学習データ量の目安 https://www.nakasha.co.jp/future/ai/yolov3train.html 最低:1カテゴリに対して100枚 基準:1カテゴリ1000枚 推奨:1カテゴリ5000、10000枚(高い精度と検出率、差異が少ない対象を扱っている場合、汎化…

Windowsで複数のアプリから同時にカメラを使う方法

IT

Windowsで複数のアプリから同時にカメラを使えない理由: ・パフォーマンス上の問題が発生しやすい ・動画を同時にキャプチャするアプリ間で動画のフォーマットを合わせる必要がある stackoverflow.com ・ドライバが同時に1つのアプリしか動画をキャプチャす…

windowsで仮想カメラを作る方法

IT

windowsでsnap cameraのようにカメラ画像を加工するなど処理をした上で他のアプリに加工後の映像を流したり、同時に複数のアプリからカメラ画像を利用するためには 仮想カメラを作る必要がある。 その方法を調査した結果が以下。 Media Foundationは動画のキ…

conda env create -f environment.yamlを実行してもpipのパッケージがインストールされない

AI

condaのパッケージはインストールされるのに、なぜ。。 ログは以下のような感じ。 Ran pip subprocess with arguments: ['C:\\Users\\name\\AppData\\Local\\Continuum\\miniconda3\\envs\\myenv\\python.exe', '-m', 'pip', 'install', '-U', '-r', 'C:\\my…

pip installでPermission Errorが出た場合は--userを付ける

AI

Permission Errorが出る原因は権限の無いところにパッケージを保存しようとしているからなので、 --userを付けてログインしているユーザの領域に保存するようにすればいい。 参考: pyteyon.hatenablog.com

良いモデルの探し方

AI

物体検出など特定のタスクを実行するモデルの探し方。 普通は「精度」「速度・メモリ使用量」がトレードオフになっているのでそのバランスが要件に近いものを探す。 基本方針は「自分で網羅的にモデルを探すのは難しいので、網羅的に調べている人の調査結果…

TensorFlowが使うCPUコアの数を制限する

AI

ユーザのPC上で推論する場合、CPUを使いすぎるとPC全体が重くなって ユーザビリティが下がるので、CPU使用率を制限したい。 CPU使用率の上限を指定することはできないが、TensorFlowが使う CPUコア数は指定出来るのでこれでPC全体が重くなることは避けられる…

CPU版のTensorRTはOpenVINO

AI

TensorRTを使って推論を高速化しようとしたところ、CPUでは使えないという情報が。。 forums.developer.nvidia.com www.reddit.com NVIDIAが作ってるからそりゃそうか。。 類似ソリューションを探したところ、OpenVINOというものをINTELが作っているらしい。…

軽い顔検出・顔認証モデルならMobileFaceNetとUltraLightFastGenericFaceDetectorがよさそう

AI

顔検出をUltraLightFastGenericFaceDetectorでやり、顔認証をMobileFaceNetでやるという流れ。 公式実装は以下にある。 github.com github.com これらを使って顔検出・顔認証をした実装が以下にあるのでこれをパクればお手軽に顔検出・顔認証ができる。便利…

pip install onnxを実行すると「ERROR: Command errored out with exit status 1 」エラー

AI

原因はonnxがPython3.8に対応していないことだった。Pythonを3.7にダウングレードしたら直った。 参考: github.com

物体検出モデルを取ってきて動かす時のサンプルコード

AI

model zooから取ってきたモデルを動かすコードを探していたところ、以下が見付かった。 これを参考にSSD MobileNetを動かしたらサクッと動いたので良かった。 github.com

pip install dlibを実行すると「cmake must be installed to build the following extensions _dlib_pybind11 windows」エラー

AI

原因はcmakeがインストールされていないこと。 pip install cmake を実行してから再度pip install dlibを実行すると直った。 参考: stackoverflow.com

import insightfaceを実行すると「ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'」エラー

AI

原因は pip install insightface を実行するとpip版のnumpyがインストールされるが、それではだめでconda版のnumpyを使わないといけないため。 以下を実行すると直った。 pip uninstall numpy conda install numpy 参考: github.com