2024.10.21
お互い疑心暗鬼になりがちな、経営企画と事業部の壁 組織に「分断」が生まれる要因と打開策
Juliaと画像処理(全1記事)
リンクをコピー
記事をブックマーク
Dsuke_KATO氏(以下、Dsuke_KATO):加藤大典と申します。「Juliaと画像処理」で、Juliaで画像処理をやろうとしたらそれ用のライブラリがあったのでちょっと触ってみたという話です。
自己紹介。大阪大学で視覚神経について大学で10年くらいやっていました。ソフトウェアのベンターにいって、今は医療機器のメーカーで働いています。
MATLABときどきCやってきました。仕事を始めてからやったPython触って、「お、これは便利だ」というのを始めて知って。そのあと須山さんの本でJuliaを知って、黒木さんに捕捉されるという馴れ初めです(笑)。
(会場笑)
現在の仕事はCとかC++を使っているだけなので、あんまりちょっと出番がなくなってどうしようと。
こんな画像とか撮るメーカーで働いています。
こういうのは分析もやらないといけないので、ここで画像処理をどうやってやろうかなということで、結局C+使うんですけど。コンパイルが面倒くさいなと。
PythonでAPI叩くだけならいいんですが、構文をぐるぐる回すのは嫌なので、何人かの方がおっしゃっているように速いということでちょっとJuliaを。
そもそもJuliaで画像を扱うのはどうなんだろうと思って調べてみたところ、JuliaImagesというところが今いろんなパッケージを包括的に扱っていて。ちょっとそれを触ってみたという感じです。
表示はわりとMATLABとかインターフェースに似ていて楽ちんです。
何個かJupyter Notebookを使って書いてみたので、それをちょっとだけ回してみたいと思います。(参考注:JuliaImagesSamples.ipynb)
これはTwitterでリンクを回しているんですが、サンプルの読み込みは、ここではTestImageを使っています。
インターフェースとしては線形フィルターでぼやかしたり。これはガウシアンフィルターですけど。まだAPIがいろいろと統一されていなかったり非効率なんですが、わかりやすいとか、効率的だけどわかりにくいとか。
まだAPIが整理されていませんが、整理されていない分ちょっとおもしろいところがあります。それがカーネルファクターとかそのへんです。
それから線形フィルター用のAPIも提供されています。アルゴリズムによってはもっと最適化できるとは思うんですけど、これはMAD関数だけ用意しておいて、それにどんな関数を掛けていきますかと。
この場合、メディアンフィルターをかけたらこうなります。汎用的なインターフェースが定義されていて。issueやプルリクを見ていたらメディアンフィルターはもっと効率的なアルゴリズムがあるぞとプルリクが投げられていたりするので、わりとそれ見ているのもおもしろいです。
画像の縮小をやりたいときは、自分で1回ダウンサンプリングするときにアンチエイリアスの対応をしてくれないので、なにかかまさないといけません。
あと、画像の回転とか。ひと通り画像処理に必要な分とか、物体検出もやりたいなと思っています。そもそも検出領域を描けるのかって、ImageDrawとかで長方形書いたりとかできます。わりと必要最低限の分は揃っているかなと思っています。OpenCVほどいろいろな関数が準備されているわけではないんですが。
あと、画像処理じゃないんですが、色空間の話も便利に扱えるようになります。これはJuliaじゃないですが、色空間でJPEGの圧縮に使われている表現なんですが、輝度情報と色差空間で画像を表現しましょうと。
いわゆる色相、彩度、明度とか、そういった変換をしてデータを扱う。それをすぐに簡単に表示することができるので、ディープラーニングとはぜんぜんつながってないんですが、そういったかたちで非常にデータが扱いやすい構造に準備されているという印象です。
データの扱い方がちょっとだけ特徴的です。基本的にデータは0、1の範囲で全部正規化して扱うそうです。
中のデータ構造は8ビットです。例えばuintとかcharとか、いわゆるC言語で使われていたものも0、1で扱います。
そのときに使われていたのが固定小数点数です。例えばN0f8とか、ノーマライズドの0。ちょっと赤色で、こういうことがあるので、赤色の部分。この場合16ビット分の2バイトのデータなんですけど。
例えば8ビットのデータを扱う人がほとんどだとは思うんですけど、ものによっては10ビットとか12ビットとか高解像度のものを扱うときにもそれ用のデータ構造が用意されています。
下は12ビットでそれを0、1の値で扱いますよといった固定小数点数でデータストレージを扱うというところがあります。
あともう1個だけ。イメージの画像でchannelviewの話もちょっとあったんですけれども。例えばこれで画像を1個作ってみて、それのサイズを見てやると普通はRGBなのでchannelの数字が出てきそうなんですけど、64×64という数字が返ってきてます。
これはちょっとJuliaの特徴的なところだと思います。実際にそれのデータを取ってこいというのはchannelviewという関数が用意されているので見てやると、そうしたらやっと3×64×64というよく見るデータが出てきます。
これはグレー画像とカラー画像を同じようなアルゴリズムで処理できるので便利だろうというのでこうしているみたいです。
ちょっといろいろと触ってみた感じなんですが、最初に始める分にはいいんですが、まだまだ成長途中なのでそれを追いかけながら自分で実装して楽しむというにはいいと思います。私が当初考えていたのは、どう使うかはまだまだです。以上です。ありがとうございました。
(会場拍手)
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗