🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1188閲覧

プログラム側で画像や動画を認識して条件分岐させるのに最適なプログラム言語

sann

総合スコア9

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/06 16:10

プログラム側で画像や動画を認識して条件分岐させるのに最適なプログラム言語

WEBサービスを開発する予定で、プログラミング言語の選定をしています。
サービスの特徴の一つに画像や動画の内容(大人、子供、動物、車など)を自動で判別して条件分岐させる機能(人間の目)が必要なのですが、調べた結果Pythonしか画像や動画の内容を認識できないようなのですが、本当でしょうか?

PHP、Ruby、Javascriptなど他の言語のライブラリなどで人間の眼を持たせることは不可能でしょうか?

本当にPythonしかWEBに目を持たせることは不可能なのでしょうか?

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

sannさんの得意な言語がわかりませんが、例に挙げられている言語からWEB系エンジニアのようだ、と勝手に解釈しました。

プログラム側で画像や動画を認識して条件分岐させるのに最適なプログラム言語

どこまでプログラム側で裁かせたいか、によりますが、


最適の定義が、
自分の得意な言語でやりたい、仕事で使っている環境に合わせたい
であれば、よほど特殊な言語でない限りなんでも良いと思います。

  • mike2mike4さんが書いておられますように、WEBサービスを使う、であればHTTP(S)の通信ができれば何でもいけるかもしれませんし、自前でさばきたいのであれば、画像認識の移植版を使えばいいと思います。Tensorflowの移植の話は時々聞きます。
  • Javascript版Tensorflow(Googleの深層学習フレームワーク)
  • Java版Tensorflow(Googleの深層学習フレームワーク)

※これらは本流から外れたやり方なので、十分な数の事例や十分な量のテキストがない可能性が高いです。うまく動かない可能性やアップデートが止まっている可能性すらあります。ご注意ください。


最適の定義が、
(マシン語ではない)現実的な言語で(実現可能な中で)現実的に(キビキビ)最速で動いてくれる
であれば(私には読み書きできませんが)C++と思います。最有力候補はDarknetでしょうか。YOLOをPythonで動かす事例が多いですが、(私にはわかりませんが)実際はPythonの裏でC++が頑張っている、と聞いております。


最適の定義が、
事前知識がなくてもとっつきやすい下地がすでにあって、先行事例も多くて、技術のアップデートがすぐにされている、
であれば、Pythonと思います。

  • 要約すると、Pythonには”とっつきやすい(勝ち馬に乗れ!)”以外のメリットは少ないです。詳細が気になるようでしたら、以下を参照ください。
  • 「調べた結果Pythonしか画像や動画の内容を認識できない」と思わせるに至った経緯は、次のような要素が揃っているから、と思います。Pyhtonには統計的・行列計算がほかの言語より楽にできて、GPU等が扱いやすくて、書き方の制約のために誰がどう書いても大体似たような書き方になるので読みやすいし覚える内容も少なくて済む、その結果としてプログラムのことに時間を割きたくない科学者らが集まっている(結果として技術の進展についていける言語)という特徴があります。そのためにPythonが注目されています。
  • 動作速度に関してはC++など言語と比べてPythonは10-100倍くらい(文字通り比べ物にならないくらい)遅いと聞いております。早くするトリックもありますが、それでもC++等には到底及びません。
  • 確かにPythonはC++等より遅いですが、恐らく深層学習を使った認識部分の速度はGPUを使うのであれば、(ボトルネックは言語ではなくGPUでの行列計算のはずなので)どの言語も大差はないものと思います。

投稿2021/02/06 22:45

編集2021/02/06 23:12
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sann

2021/02/09 16:09 編集

Pythonの学習をすこし始めたのですが、PHPやJavaScriptより少ない記述で書けるのがありがたいなと思っていたのですが、C++の10倍以上重いとなると他の言語と連携してPythonをピンポイントで使い、mike2mike4さんのおっしゃる通りAWS、GSPのどちらかを使うか考え中です 貴重な知識をありがとうございます。 こちらも参考になりました・ https://twitter.com/mpyw/status/1357841709921562625
退会済みユーザー

退会済みユーザー

2021/02/09 21:49 編集

> C++の10倍以上重い Pythonの一般的な例では… どういう処理が重いかがミソで、Pythonであればfor文が異常なまでに遅い傾向があります。ですので、For分を可能な限り回避する(場合によっては内包表記に切り替える)でだいぶ遅さは回避できます。「Python 競技プログラミング」のようなワードで検索すると、元のコードの数倍、モノによっては数千倍、数万倍速くなった、のような例も時々聞きます。私も処理方法を工夫して数万倍くらい早くなった例の経験があります(先述のfor文は特にだめで、for文のfor文のfor文のようなのはPython的に処理速度の面で本当にダメな例です)。 深層学習系の処理では… ニューラルネットワークの構造次第でだいぶ早さが変わります。早いものはPython経由でも100fpsくらいで認識できますし、遅ければ5fpsくらいと思います。これらは結局GPU任せなところが大きく、恐らく○○言語か△△言語の違いというよりも、処理する装置やニューラルネットワークの構造そのものに律速されていると思います。ですので、普通の処理における「Pythonは遅い」と、「深層学習の処理が遅い」は分けて考えた方が良いと思います。Pythonで遅い深層学習はC++にしても恐らく遅いです。本当は比べないといけませんが、差が出るのは深層学習以外の部分(上のPythonの一般的な例の部分)が大きいと思います。 また通信回線を介した場合、これがどうなるのか私には見当もつきません。ローカルでPythonで裁いた方が早い、は十分あり得る話と思います。これも本当は比べないといけませんが、ローカルのGPU+Python<<リモートの画像解析サービス+謎の言語と思います。 妥協点?… 一刻一秒、むしろmsオーダーを争うような世界にはPythonは向いていません。そこはマッチョにC++で行くのが王道だと思います。その代わり、0.xmsの処理が10msになって困らないオーダーであればPythonはありと思います。 直感的な理解ですが、C++は”早すぎる"代わりにとっつきにくい(生涯修行のような話はよく聞きます)、Pythonは普通に使う分には良い(処理が遅くても、その代わりにコーディングに割く時間に減らせる)のかなとも思います。
guest

0

AWS、GCP、Azure各クラウドサービスのサービスがありますのでそれ使えば、他の言語でも使えますよ。
画像認識AIのサービス比較

投稿2021/02/06 16:19

mike2mike4

総合スコア935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sann

2021/02/09 15:50

GCPを使った画像認識の実演を見たのですが驚くほど簡単にできることに少し感動してます。 貴重な知識をありがとうございます
mike2mike4

2021/02/09 15:52

構築も要らない、プログラミングも少しで済む、大量の学習も不要なので、私はこちらをお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問