-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
縦長の画像のアノテーションが上手くできていない #4
Comments
画像をiphoneとかでとっていますか?
そうなっているとアノテーションもかなりおかしなことになりますね。 |
ありがとうございます。 |
この問題に関連して、画像が逆さまになってしまうという問題を発見しました。 下の図では上の画像がアノテーションしたもの、下の画像がtensorboardで見たものです。 |
@MiyabiTane ちなみに、iPhoneでみたときはtensorboardのほうが正しいですか?(つまり上下逆さまにはiPhoneではなってないんですよね) |
iPhoneで送った後、PC上で向きの操作などは一切していないです。 そして、すみません。画像(上のコメントの、上の画像がアノテーションしたもの、の方)を見て向き的に自分でiphone上で回転させたものだろうと思っていたのですが、今iphoneで編集ボタンを押すとオリジナルに戻す、という表示が出ないのでiphoneで撮ったままの画像のようです。 説明がわかりにくくて申し訳ないのですが、つまり言うと、iphoneで撮影した後、iphone上でもPC上でも、何の回転も加えていないはずだと言うことです。 ただ、普通写真をとると下の画像のような向きになるはずで、なぜ逆さまになっているのかは撮った本人もわかっていないです。。。 |
アノテーションをしたフォルダの画像を見ると正しい向き(?)になっていそうですが、 VOC形式にした後のJPEGImages内の画像を見ると反転されてしまっているみたいですかね?
|
金沢くんの最初の人参もデータセットでは正しく縦になってたんだっけ? |
となるとlabelmeのバグっぽいですね |
僕の最初の人参の画像(iPhoneで縦長で撮影して回転など編集は一切行っていない)場合はアノテーションした時の画像が縦長、 VOC形式に変換した時のJPEGImages内の画像が横長、
なのでOpenCVで読んでも縦長に認識されているようですが、iPhoneで撮影した画像の場合labelmeのVOC変換を行う際にJPEGImagesが回転や反転して、セグメンテーションとずれてしまう事があるみたいですね。 |
なるほど、おもしろいですね |
あ、ほんとだ、気づかなかった...。金沢くん指摘ありがとう! 直せたらPRですね、時間つくって頑張ってみます。 |
ちなみにlabelmeはどのコマンドをつかって、どうやってannotationしてるの?
https://github.com/wkentaro/labelme/tree/master/examples/bbox_detection
ここをさんこうにしてるのかな?
…--
Shingo Kitagawa
the University of Tokyo, JSK Lab
s-kitagawa@jsk.imi.i.u-tokyo.ac.jp
2020年5月25日(月) 21:24 MiyabiTane <notifications@github.com>:
あ、ほんとだ、気づかなかった...。金沢くん指摘ありがとう!
これが直ればiphoneの写真の撮り方や回転編集の有無を考慮しなくてよくなりそうですね。
直せたらPRですね、時間つくって頑張ってみます。
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#4 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACG6QX3HM23QL6YVZKGNHT3RTJPOTANCNFSM4NDLINKA>
.
|
labelme input --labels labels.txt https://github.com/MiyabiTane/HIRO_LunchBox/tree/master/labelme 今ふと思ったのですが画像の形が変わってしまうことにpython3で実行していることが関係しているでしょうか? 今コードを見ていたのですが99行目のnp.asarrayが悪さをしているようです。 私の環境ではpythonで実行すると以下のようなエラーになります。 |
僕も種本さんのREADMEを見てやったので、Python3で実行しています。 labelme2voc.pyにはinstance_segmentationのものとsemantic_segmentationのものがあるのですが、semantic_segmentationの方で変換すると向きが変わらないみたいです。 |
あ、試してみます。とりあえずご報告ですが、semanticの方を真似して、
|
北川さんの方法でも画像のサイズを保つことができました! |
@MiyabiTane 何故か |
cv2を使った後PILを使うのはどうなんだろうと思ってcv2で保存する方法を探してたところに金沢くんのコメントが来たからその方法は確認してないです、ごめんなさい...。 |
そうだよね、、 確かOpenCVとPILでRGBの順番が違うみたいな話があった気がするのでそれを直す必要があるんだよね、多分。 |
ちょっとまって動かないです |
で動きました、書き間違えただけかな?金沢くんの手元でlabelme.がついてるならOKです。逆さまの画像問題も直ってました! |
|
|
ちなみにpythonで動かないのも問題な気がするのでもしよかったら金沢くんの手元でもpythonで動かすの試してほしいです。
ってことはpython3では動かさない想定のはず...。 |
とりあえず試してみただけど、同じエラーっぽい? |
うーん、なるほど。ありがとう。 |
そうですねcv2.imreadつかったら最後までcv2.imsaveするほうがいいですね。 ちなみに、cv2はBGRの順番で画像を読んでしまうので、こうするとRGB順になります(numpyの逆順にする操作)
|
あと、 |
@Kanazawanaoaki @MiyabiTane |
ありがとうございます。
としてみましたがpython2のサポートが終わってしまっていてうまくいかないようです...。
|
なるほど、じゃあこの |
ありがとうございます。
labelme2voc.pyを使うときに、
としてとってきたlabelme2voc.pyを使っていただくのが良いと思います。 |
了解しました |
これは、iphoneの姿勢を使うかどうかというところで、単純にimreadしているところは使えていないからおかしく見えるということだと思います。labelme2voc.pyが正しいはず。 |
これですね。instance_segmentaion/labelme2voc.pyではapply_orientationがされていなかった。
|
@wkentaro |
こういう感じだそうです。 |
このPRでlabelm_draw_json等も含め全て治ったと思います。また起こったら教えてください。
labelmeコマンド自体は賢くしたんだけど、labelme2voc.pyの方で漏れがあったみたい。 |
対応ありがとうございます。とても勉強になりました。
そうだったんですね! 解決して頂いたのでこのissueはcloseしたいと思います。 |
ちなみに、ぼくはiphoneで撮った画像で昔おなじことになったときは、スクリプト書いて全画像をcv2.imreadしてcv2.imsaveして上書きしました。 |
labelmeによってアノテーションを行っているが、縦長の画像に対してのアノテーションが上手く言っていない可能性がある。
very_easy_data/train/382076.jpg
画像が途中で切れてしまって上手くアノテーションが出来ていない気がする。
The text was updated successfully, but these errors were encountered: