投稿者: 山ノ内 勇斗

  • VlogカメラはSONY?Panasonic?徹底比較してみた

    VlogカメラはSONY?Panasonic?徹底比較してみた

    Vlogという言葉は広く浸透してきており、今後もますます広がっていくと考えられます。
    その時代の流れに則って、僕自身もVlogなるものをやってみたいなと思い、新しいカメラを買うことを決意しました。

    今現在販売されているVlogに特化したカメラとして
    Sony VLOGCAM ZV-1

    Panasonic DC-G100

    があります。
    ハンディカメラと違い、比較的コンパクトで片手で持っても撮影できること、そして、背景を綺麗にぼかしたりなどの高度な映像を簡単に撮ることができます。

    上にあげた二つのカメラは価格帯もほとんど同じであり、Vlogに必要な機能は十分に兼ね備えています。
    それであるが故に、どちらを購入しようか非常に困ります。
    そこで二つを比較してみて、いいところ、微妙な点をあげてみます。

    Sony VLOGCAM ZV-1

    いいとこ

    ・動画モードが色々あること(商品紹介、風景、人の顔などすぐに切り替えられる)
    ・軽い(約294g)
    ・カラーバリエーションが2種類(白かわいいな・・・)
    ・三脚の手元ボタンの充実
    ・マイクのふさふさがついてる
    ・ズームが幅広くできる
    ・ケーブルなしで三脚と接続し、三脚のボタンが使える
    ・操作がシンプル

    妙な点

    ・写真機能はあまりフォーカスされてないから、あまり期待できなさそう
    ・ファインダーがない
    ・熱くなって止まることがあるらしい

    Panasonic DC-G100

    いいところ

    ・ミラーレス一眼だから、レンズが変えられる
    ・写真の機能も充実(普通に写真を始める人にもおすすめ)
    ・マイク機能がすごい!
    ・液晶が綺麗!
    ・動画の時に画面の縁が赤くなるので、録画中かどうかがわかりやすい
    ・ファインダーがついてる

    妙な点

    ・sonyと比べると重い
    ・セットについているレンズだとほとんどズームできない
    ・三脚とカメラの間にケーブルがある

    Sony VLOGCAM ZV-1の特徴は
    操作が簡単で誰でもVlogを始められること!
    Vlog特化型カメラ!

    Panasonic DC-G100の特徴は
    マイクがすごくて本格的な動画撮影
    写真の機能も十分以上ある

    どちらのカメラにも共通してるのは、手ぶれ補正や、瞳オートフォーカス、スマホとの連携性、4K撮影などVlogをする上での機能は十分に揃っています。
    どちらもVlogを撮影する人向けに作られたカメラなのでどちらを選んでも後悔することはないと思います。
    ただ、プラスアルフファの機能で何を求めるのかというところでどちらを選ぶかが決まってくると思います。

    Vlogをするって割り切ってるとか、人をメインとしたVlogをやるならSONYの VLOGCAMはかなりいいと思います。

    写真もやりたいし、動画もやってみたい!っていう人にとってはPanasonicのG100を選ぶといいと思います。

    ただ、僕は普段写真撮る時は一眼レフを使っていて、それがキャノンなのでレンズの互換性がないです。
    だから、Panasonicの方では画角を変えたかったら新たにレンズを買わなきゃいけないということになります…。

    Panasonicの写真の機能をどこまで使えるのか。
    そこに判断の基準がきそうな感じがします。
    場合によってはCanonからPanasonicへ転身するかも・・・笑

    あとは、お店で実際に見てみて触ってみて、直感に頼るのみ!

    みなさんの参考になれば幸いです。

    リンク
    Sony VLOGCAM ZV-1
    Panasonic DC-G100

  • PythonでArduinoを制御したいのだ!

    PythonでArduinoを制御したいのだ!

    ArduinoはArduino言語によって制御します。
    ただ、もっと複雑な処理をしたい、何かのプログラムと一緒にArduinoを制御したいという時が訪れることでしょう。

    今回紹介するpySerialというモジュールはRaspberry PiやArduinoとシリアル通信を行うことができます。
    シリアル通信をすることによって、pythonのプログラムからArduinoやRaspberry Piに指令を出し、pythonプログラムを通して制御することができます。

    今回はその基本的なプログラム紹介します。
    これが使えるだけで、プログラムでできることの幅がかなり広がるでしょう。

    インストール方法

    pip install pyserial

    ターミナルやコマンドプロントでpythonを開き、インストールできます。
    もしくは、PyCharmなどのターミナルでインストールもできます。

    プログラム例

    今回は1秒ずつLEDをつけたり消したりするプログラムです。
    もともとArduinoについているLEDの13ピンに出力して検証したいと思います。
    Pythonのプログラムでは

    import serial, time
    
    def main():
        #  COMポートを開く
        print("Open Port")
        ser = serial.Serial("COM3", 9600)
        while True:
            #  LED点灯
            ser.write(b"1")
            time.sleep(1)
            #  LED消灯
            ser.write(b"0")
            time.sleep(1)
    
        print("Close Port")
        ser.close()
    
    if __name__ == '__main__':
        main()

    serial.Serialでポートと、シリアル通信の設定を行います。
    Arduino UNOでは9600を指定します。
    これはボードによって異なるので、Arduino IDEで確認しましょう。

    b”1″のbは非常に重要な役割を担っています。
    serial.write()関数では、シリアル通信をするためにはbyte列にして数字や文字列を送信しなければなりません。
    このようにして、byte列であることを示す必要性があります。

    このプログラムは無限ループなので、1秒ごとのLEDのオンオフがプログラムを止めるまで続きます。

    次にArduino側のプログラムです。

    void setup() {
      Serial.begin(9600);
      pinMode(13, OUTPUT);
      digitalWrite(13, LOW);  //  初期化
    }
    
    void loop() {
      byte var;
      var = Serial.read();
      switch(var){
        case '0':
          digitalWrite(13, LOW);
          break;
        case '1':
          digitalWrite(13, HIGH);
          break;
        default:
          break;
      }
    }

    ここではswitch case構文を使っています。
    このほうがプログラムがわかりやすいです。
    詳しくは前回のブログを見てみてください。

    ここでは0が送信されるとLOW、1が送信されるとHIGHとなります。
    このプログラムをベースに使うことによって、色々なパターンでArduinoをPythonプログラムで制御することができます。

  • Arduino言語におけるswitch case 構文

    Arduino言語におけるswitch case 構文

    Arduinoにおいて、さまざまな条件分けをしたいとき、if文で構成することがほとんどだと思います。
    しかし、条件分岐が10とか20とか(あんまりないとは思いますが)あった時はどうしましょう。

    C/C++言語にはswitch文があり、C/C++言語をベースとしているArduino言語も同じ構文が使えます。

    以下にプログラム例を記載します。

    switch (var) {
      case 1:
        // varが1のときに実行する処理
        break;
      case 2:
        // varが1のときに実行する処理
        break;
      default: 
        // どのcaseラベルにも一致しないときに実行する処理
        // defaultは、省略可能
      }

    varが変数であり、varが1の時、case 1の処理が実行されます。
    varが2の時、case 2の処理が実行されます。
    varが1, 2以外の時は、defaultの処理が実行されます。

    case 1, case 2の処理後の “break;”はそれぞれのcaseの処理が終了したということを示す文です。
    この文がないと、エラーを起こしたりします。

    defaultの処理において、break; が必要ないのは、defaultは最後の条件分岐になり、最後の処理というのが明白なためです。
    ただ、書いてはいけないわけではなく、書いても問題なくプログラムは動きます。

    また、default: 自体も省略することができます。
    if else構文のelseの省略のような感覚です。

    個人的にはswitch case構文はif構文よりもプログラムを見たときのスッキリさはあると思います。
    そこまで難しいコードでもないので、ぜひ使ってみてください。

  • 聞かされる発表から聞かれる発表へ!

    聞かされる発表から聞かれる発表へ!

    大学生活において避けては通れないもの、その一つが発表です。
    授業だけでなく、研究室、ゼミ、サークル活動などでも人の前に立ち、発表する機会は多くあります。

    小学校から高校までは授業を受けるだけであり、長い時間の発表というのはなかなか行う機会が少なかったのに、
    急に大学に入ると人前に立たされることが多くあります。

    ただ、周りの人たちの中には発表が苦手であったり、嫌いだったりする人が多くいるのも事実であり、
    発表自体も発表が下手だなー、退屈なだーと感じてしまう人は残念ながら多くいます。

    そこで、大学生活で培った発表のノウハウをどんどん載せていきます。

    今回は発表を行う上での心の部分です。

    発表が下手な人たちの典型例として、聞かされる発表を行なっているということです。
    例として、
    ・一枚のスライドの説明時間が長い
    ・発表に空白の時間がある
    ・スライド枚数が多い
    ・話の繋がりがわからない
    などです。

    基本的に発表を聞く人たちは、発表を聞きたいという意欲はほとんどないと思った方がいいです。
    誰もあなたの発表に最初から興味を持っている人はいないのです。

    発表を聞く人たちの気持ちは、中学校で30分ぐらいの校長先生の話を体育館で聞いている気分です。
    学生時代に校長先生の話を毎度興味津々で聞いていた人は少ないでしょう。

    このような聞きたいという意欲のない聴衆に対して、自分本位の発表をすることによって、自分自身は満足するかもしれませんが、聴衆は退屈します。

    人によっては、聴衆が楽しそうでない、スマホを触っている、寝ているなどの様子を見て、自分の発表はだめなんだと自己嫌悪に陥る人もいるでしょう。

    そのようにならないために、聞かれる発表をする必要があります。

    聞かれる発表には小手先の発表の技術も大切であるが、もっとも重要なのは自分自身の発表に対する考え方である。
    その考え方が変われば、聴衆を意識した発表になるでしょう。

    聞かれる発表のために重要なことは、
    ・発表で最も伝えたいことは何かをはっきりする
    ・発表はシンプルに、最小限に
    ・自分がわかりにくい、気になると感じるところはなくす
    です。

    発表で10あったとする。
    10を同じテンションで話すと聴衆にも全く何も残らないが、1つだけを重要そうに話すと、その他の部分は全くゼロかもしれないが、その1だけは少なからず頭に残るだろうと思います。

    話したい内容を絞り、短く端的に、そしてわかりやすく

    意見を押し付けるような発表ではなく、自然と聞いてもらえるような発表というのを目指す。
    それを意識していれば、自然と発表はよくなっていくと思います。

    発表がうまいなという人がいれば、その人たちに色々きいてみましょう、
    そういう人がいなければ、発表のお手本としてよく取り上げられる、スティーブ・ジョブズ、オバマ大統領などの発表を見てみましょう。
    彼らの発表は言葉だけで、多くの人に伝えることができます。
    それは、技術もすごいが、最も、自分の伝えたいことがはっきりしているという点があると思います。

  • Image J (Fiji) による連続画像処理

    生物学の研究において、抗体染色などのサンプルを共焦点レーザー顕微鏡で撮影することが多くあるかと思います。

    その撮影したデータをImage Jによってスタック画像(Stack)にしたり、波長の違う画像をマージ画像(Marge)としたりする方法を説明します。
    最後にスケールバーの挿入方法をやって終わりです。

    まず、共焦点レーザー顕微鏡では違う波長(レーザーが違う)で撮影した画像が一つのスライスごとにあり、そのスライスがz軸方向にサンプルの厚さ分だけあります。

    この時に、波長の違う同じzの位置の画像を合わせることをここではマージといい、z軸方向の画像を重ね合わせることをスタックと言います。
    Image Jでも同じ意味で使われているので、今何をしたいのがを考えながらやりましょう。

    今回Fijiで説明しますが、Image Jでも大体は同じです。
    ただ、Fijiでは共焦点レーザー顕微鏡の画像データを形式を変えることなく開くことができるため、今回はFIjiで説明します。

    今回はflylightのハエの共焦点レーザー顕微鏡画像を用いました。
    例として使う画像

    このサイトからダウンロードできるように、共焦点レーザー顕微鏡画像の画像は *.lsm など各メーカーの独自のフォーマットを用いており、このファイルの中にさまざまな情報が入っています。
    これによってスケールの情報も入っているので、自分で顕微鏡のスケールを検索しなくても正確なスケールバーを入れることができます。

    まず、Fijiを開き、出てきたメニューバーみたいなところに撮影したデータを入れます。

    開くと、何かしら黒かったり、緑かったりする新しいウィンドウが開きます。
    これが現在の作業している画面です。
    下のスクロールを動かすことによって、Z軸を動かすことができます。

    上部の Image<Color<Make Composite より画像をマージします。
    Image<Color<Channnels Tool より、チャンネルツールを開きます。

    このチャンネルツールでは、Channnelのチェックによって、そのチャンネルの表示を切り替えることができます。

    画像をスタックする時には、Image<Stacks<Z projectをクリックすると、画像がスタックされます。
    この時に、特にこだわりがない場合にはProjection TypeはSum Slicesにしましょう。
    すると、新しいウィンドウが開き、スタックされた画像が表示されます。

    ここでもチャンネルツールは使うことができ、各画像のスタック画像を見ることができます。

    スケールバーはAnalyze<Tools<Scale Barより追加することができます。
    Width in 〇〇:の値を変えることで、好きな長さにすることができます。

    処理した画像を保存する時には、File<Save asでファイルの形式を指定して保存します。
    Tiffでは何故か画像が白くなるので、PNGやjpegをお勧めします。

    最後に完成した画像がこちら

    Fijiのリンクはこちらから

  • 詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    プログラミングの勉強を始めるにあたって、いったい何から始めるかっていうのが最初の関門だと思います。
    ネットで調べたりしたはいいけど、そこからじゃあどうしましょう。プログラムを書くソフトは一体どうしたらいいの?

    僕自身それでかなり困りました。

    プログラムを書くにあたって書くためのツールが大きく二つあります。
    一つは対話型であり、一つは文章型です。(ここでは分かりやすく。正しいのかはイマイチわからないですが…)

    対話型は文章を一つ打ったら、一つ返答が返ってくる
    という具合に一文一文プログラムを書いて実行してを繰り返します。

    文章型は作文をしたらその感想が返ってくる
    というように、一気にプログラムを実行するイメージです。
    いわゆる想像するプログラムは文章型であり、訳のわからないコードがたくさん並んでいるように見えるかと思います。

    ただ、文章型のプログラムをしようとした際にじゃあ一体どのソフトでやるのか?というのが困ります。

    それも、プログラミングを学ぶ初級では対話型を行うことが多いが、中級になると急に文章のコードを書くようになり、何を使って書くかはあまり明記されなかったり、本によって全く違ったりします。

    対話型はコマンドプロントであったり、ターミナルなどの、もともとパソコン本体に既存のもので
    “Python”と打ってから始めます。

    しかし文章型のプログラムはどれで書くのでしょうか。

    文章型のプログラムの多くは、IDE(総合開発環境)によって書くことがほとんどです。(困ったときには”Python IDE おすすめ”で検索するとたくさん記事が出てきます。)

    僕の文章型のプログラムを書くときに普段使っているのは
    Jupyter NotebookとPyCharmです。
    (Jupyter はジュピターと読む派と、ジュパイターと読む派がいるみたいです。)

    統計解析やグラフを書くときはJupyter Notebook、機械とか動かしたり、複雑なプログラムはPyCharmを使います。

    それぞれどんな感じなのかを説明していきたいと思います。

    まずJupyter Notebookについて。
    これはAnacondaをダウンロードすると付随して入ります。
    Jupyter Notebookを起動すると、まずSafariやFirefoxなどのパソコンのブラウザが開きます。

    そして、パソコンのファイル一覧が表示されます。
    そこで目的のフォルダーを開き、右上のほうにあるnewをクリック。
    その後、Python3をクリックすることで下の画像のような画面が開かれます。
    このファイルを保存すると *.ipynbファイル となります。

    一つ一つの塊にプログラムを打ち、上部にあるRUNというボタンをクリックすることによって、各固まりずつプログラムを動かすことができます。

    グラフや統計を行う際に、この一つの塊ずつコードを実行するというのはとても利点となります。
    なので僕はよく利用してます。

    PyCharmは *.py ファイルを開くときに使っています。
    開けるファイルが違うので、注意が必要です。

    PyCharmは他のサイトを参考にしてみてください。
    (まだあんまり使ったことがないので、詳しい使い方に関しては今後の記事で紹介したいと考えています。)

    Anacondaのサイトはこちらから

    Jupyter Notebookのサイトはこちらから

    PyCharmのサイトはこちらから
    ダウンロードはprofessionalではなく、灰色のCommunityのほうが無料で使えるほうです。
    はじめはそちらのダウンロードをおすすめします。

    Jupyter Notebookは最近頻繁につかっているので、僕の学習のメモとして、そしてプログラムを学びたい方向けに今後も更新していきたいと思います。

  • ねじ位置が分からなくなっちゃう!!アイデアで解決☆彡

    ねじ位置が分からなくなっちゃう!!アイデアで解決☆彡

    パソコンのHDDをSSDに換装するとき、グリスの塗りなおし、もしくは家具家電が壊れた時に、自分で直そうとするとき、ついついねじをなくしちゃいがちです。

    ねじをなくすとホームセンター等で購入せねばならないうえ、ぴったりあうねじを見つけるのは至難の業です。
    僕もスイッチのプロコントローラーを直そうとしたときに、ねじをなくし、買いに行きました。

    近年中国市場で出回っている電子機器の部品等がAliExpressやWish等で購入できるようになり、メルカリ等のフリマアプリでジャンク品を気軽に購入できるようになったことから、自分自身で直そうとする試みをする人たちが非常に多くなりました。
    コロナの感染拡大により、家で過ごす時間も増え、なおこのブームが加速されたと思います。

    ただ、やはりねじの管理はモノを直すうえで基本的なことであり、しかし重要なことの一つであると思います。
    そこで僕がジャンク品修理の際にどのようにねじ管理をしているのかを紹介したいと思います。

    これは百円均一に売っている裏が粘着シールになっているマグネットシートと、透明なトレーで作成できます。
    僕の買ったときには、マグネットシートは文房具コーナーに、透明なトレーは収納コーナーにありました。

    マグネットシートを適当なサイズにカットし、それを張り付けることで作ることができます。

    このトレーは重ねることができるものであるとなおよく、作業中にそのトレーを分解した順に重ねることでよりどの位置のねじかがわかります。
    ねじと一緒に細かいパーツも置くことができるのも押しポイントだと思います。

    簡単に作ることができるので、ぜひ活用してみてください。

  • 一か月プログラミングの勉強をしてみての感想

    プログラミングを学習して一番実感するのは、自分が果たしてプログラミングができるようになっているのかどうかわからないということです。

    いままでずっと、プログラミングは英語のようなもので、勉強するにしたがってだんだんと言語のようにすらすらと書けるようになっていくのではないかと考えていました。
    しかし、実際には、そうなっていくような感じはあまりしませんでした。

    プログラミングは必要に迫られたときに勉強する感じであり、逆に言うと使わなければ身につかないんだなと思いました。
    僕自身DeepLabCutによって解析結果が出ましたが、あまりにも膨大なデータなため、それをどうにかしてわかりやすくグラフにする必要性がありました。

    エクセルでもグラフはかけるのでしょうが、膨大なデータであり、エクセルで開くのだけでも非常に時間がかかりました。
    そういったデータを処理し、グラフにするためにpythonを使用しようと決め、勉強しながらプログラムを書くことにしました。

    プログラムを書いてみて、プログラムを書くこと自体はそこまで難しくないと思いましたが、自分のやりたい処理をグーグルで探すことが難しいなと感じました。
    どういう処理をしたいかを考え、それにあうプログラムコードを調べ、入力していくという作業の繰り返しでした。

    これを踏まえ、先に話した言語のようなものではなかったということについて、どちらかというと常に英和辞典をもって話しているような感じであり、どのようなことでもある程度時間をかければできるが、経験によって調べる速さ、プログラムのスマートさが変わっていくのだと感じました。

    また、自分で書いたコードは財産となり、同じような処理を行おうとした際にそれをコピペして少し変えてつかうということが頻繁にあります。

    まだまだプログラミングを始めたばかりで、ミーハーなのでそういうことを語れる身ではないのかもしれませんが、今後始める方の参考になればと思います。

  • DeepLabCut2.3のインストール方法[2023年12月更新]

    DeepLabCut2.3のインストール方法[2023年12月更新]

    今回の記事ではDeepLabCutのインストール方法について説明していきます。

    参考サイト
    ・日本語サイト
    https://qiita.com/auditorycortex/items/1b3a55101cddf09553b2
    ↑非常にわかりやすい。とりあえずこれに従っておけば大丈夫なはず

    https://note.com/sakulab/n/n9caeb32d74d6
    ↑画像付き

    DeepLabCutホームページ
    GitHub

    インストール方法

    動作環境
    ・Windows 10
    ・NVIDIA 2060 SUPER, NVIDIA 1080 Ti, NVIDIA 3080で動作確認
    (NVIDIA 1060 SUPERでは動作せず)
    ・DeepLabCut 2.1
    ・NVIDIA Driver 最新版
    ・Anaconda3
    ・Python 3.8
    ・CUDA 11.8
    ・tensorflow-gpu 2.5

    手順
    まず初めに、GitHubのサイトのマスターファイルをダウンロードしておきます。

    Codeの”Download ZIP”よりダウンロードすることができます。

    次に、AnacondaのサイトからWindows 10 64bit版をダウンロード、インストールします。

    NVIDIAのドライバーをインストールします。(もともとインストールされている場合はスキップします。)

    DeepLabCutのサイトの下のほうへとスクロールし、右側の ”DOWNLOAS CONDA FILE” をクリックし、
    DEEPLABCUT.yamlをダウンロードします。

    PCのどこかにDeepLabCutフォルダーを作り(デスクトップ、もしくはCドライブのディレクトリがおすすめ)、その中にenvironmentフォルダーをつくりましょう。
    そして、そのファイルの中に先ほどダウンロードしたDEEPLABCUT.yamlのファイルを入れます。
    これは人の好みによりますが、僕は環境ファイルはある一定のところへと保存したい派ですので、このようにしております。

    Anaconda Promptを管理者権限で起動します。(なんか黒い文字ばっかのターミナル、もしくはコマンドプロントのような画面が出てくる)
    Anaconda PromptはAnacondaをダウンロードした際に、一緒に入っており、PCのソフト一覧から見つけることができると思います。

    さきほどダウンロードしたDEEPLABCUT.yamlファイルをつかって仮想環境を構築します。
    Anaconda Promptで

    conda env create -f C:\(DLC-GPU.yamlファイルの場所)\DEEPLABCUT.yaml

    と入力しましょう。
    DEEPLABCUT.yamlファイルの場所は、ファイルのプロパティから確認することができるので、そこから確認し、入力しましょう。

    このコードを動かすと、いろいろダウンロードなどをするかと思います。
    その後、作った仮想環境に入りましょう。

    conda activate DEEPLABCUT

    すると、(base)から(DEEPLABCUT)に代わっていると思います。
    そこまでいけばとりあえずは成功です。

    次に、CUDAとcuDNNをインストールします。

    conda install -c conda-forge cudnn

    これによって、CUDA toolkitとcuDNNをいい感じのバージョンをダウンロードしてくれます。

    その後、以下の4つのコードを入力し、インストールします。

    pip install numpy
    pip install deeplabcut
    pip install imgaug
    pip install torch

    DeepLabCutをアップデートし、インストールは完了です。

    pip install --upgrade deeplabcut

    ここまで出来たら、一度起動してみましょう。

    conda activate DEEPLABCUT
    python -m deeplabcut

    を入力することで、DeepLabCutのGUIを起動させることができます。

    DeepLabCutがGPUで動いてくれない時の対処

    trainingを開始してみたら、あれ?遅くね?ってなることがあります。
    それはGPUでDeepLabCutを動かしたいはずが、CPUで動かしてしまっているからです。

    よくある原因はCUDA, cuDNN, tensorflowのバージョンが合致していないという問題です。

    tensorflowなどは最新版にどんどん更新されていきます。
    なので、たまにうまくいかなくなることがあります。

    最新のバージョン情報に関しては、DeepLabCutのGitHubで確認してみてください。

    以上がインストール方法でした。
    次回以降は使い方を説明していきたいと思います。

    おまけ

    パソコンどれを使えばいいのかわからない方へ、パソコン購入相談をココナラでやることにしました!

    あなたの要望に合わせてパソコンを選び、提案します パソコン選びに困っている方々へ!様々な目的に対応できます!

    パソコンを選んだり、アドバイスすることが多く多くの友人からパソコンの相談やったら儲かるのにと言われました。
    それに感化されて一旦やってみようと思いました!

    パソコンの利用目的に合わせて、そしてパソコンの予算に合わせて購入をご提案します。
    特に機械学習に用いるパソコンを多く選び、使ってきています。

    そして、希望があればパソコンを今後買う時にどこに注目すると良いかもアドバイスしていきたいと思います。

    今まで選んだことあるパソコンとして、研究室の解析用パソコン、実用パソコン、ゲーム配信用パソコン、大学の新入生用のパソコン、建築学科用のCADが使えるパソコン、とりあえずのパソコンなど。

    MacとWindowsの両方使っているので、どちらのお話、ご提案もできます!

    ぜひ利用してみてください

    追記 1

    DeepLabCutと同様に、行動のトラッキングを行うツールである”SLEAP”のインストール方法についても記事に書きました。

    SLEAPもDeepLabCutに負けないツールなので、ぜひ使って見てください。

  • 深層学習を用いた行動解析ツール DeepLabCut

    深層学習を用いた行動解析ツール DeepLabCut

    (上の画像が論文へのリンクとなっています。)

    生物学における行動解析は非常に重要な実験であり、特に脳の理解には行動を正確に定量が必要不可欠です。

    従来ではマーカー(センサーなど)を実験対象(人や実験動物など)に用いることによってポーズ推定を高精度で行うことができました。
    しかし、センサーを用いるということは実験対象にとっては邪魔なものとなり、それによって行動が変わったり、行動の制約が生まれたりする。

    マーカーを用いない方法として、スケルトンモデルを適用するという方法があるが、スケルトンモデルの開発は時間がかかり、大規模に行うこととなリマス。
    画像からポーズ推定のシステムもあるが、これはポーズ推定に伴うデータ量が膨大となり、これもまた設備の問題で一研究室が行うには非常に困難でした。

    DeepLabCutではパソコン一つあれば誰でも、そして非常に簡単にポーズ推定を行うことができます。
    深層学習を用いた画像認識によって、マーカーレスで、そして自分の好きなところを認識し追跡することができます。

    また、深層学習によりマーキングしているため、撮影した動画を補正することなく解析することができます。
    つまり、解析しようとするフィールドの光が均一でなくても、また角度によって映像が多少歪んでいたとしても、トラッキングすることができます。

    DeepLabCutの開発した研究室のページはこちらから。
    GitHubについてはこちらから。

    実際にDeepLabCutを使用してみて、解析に用いるパソコンのスペックとして、GPU(グラフィックボード)のメモリが8GB以上というのが必要であるとわかりました。
    ゲーミングPCのGPUではミドルエンドからハイエンドのGPUであり、普段使用しているノートパソコンでは快適な解析はできないことがわかりました。

    ただそのようなハイスペックのパソコンがなくともGoogle Colaboを使うことによって仮想GPUを使用し、解析をすることができます。
    ただまだやったことはないですが・・・。

    実際の解析では、プロットの精度は非常に高いと感じました。
    ただ学習させるデータと違う背景であったりすると、うまく解析してくれないことがよくあり、学習させるデータは実際に自分が解析したい環境を想定し、それに近い環境の学習データが良いと感じました。

    DeepLabCutは自分の興味のある数カ所のプロットだけではなく、解析に使わなくとも調べたい実験対象のある程度の骨格など全体をプロットすることで、よりプロットの精度が良くなることが論文で示されていました。
    また、学習し、解析したあとでうまくいかない時には、そのうまくいかないフレームを排除したり、新たな学習のデータセットを追加したりでき、学習を能動的に改善することができます。

    DeepLabCut自体使い勝手は非常に良く、誰でも簡単に使用することができます。
    ぜひ解析に使ってみてはいかがでしょうか。

    DeepLabCutのインストールや使い方の説明を今後していきたいです。