Slide 1

Slide 1 text

#javado #北海道まったりLT大会 JSR381、知っていますか? 
 Javaの画像認識APIのはなし 山川広人(@gishi_yama) 公立千歳科学技術大学, Javaユーザグループ北海道 1

Slide 2

Slide 2 text

#javado #北海道まったりLT大会 Hiroto Yamakawa 2 公立千歳科学技術大学 情報システム工学科 専任講師 
 R&D: Experimental Development of ICT Services, Learning Technology, 
 Computer in Education, Programming & Programmer's Education 千歳市バスロケーションシステムの開発(2016-2022) 適応型学習支援システムの開発、活用 レポート内の話しことば診断システムの開発 ソフトウェア開発やアーキテクチャ設計手法の応用:導入効果の検討とプログラミング・エンジニアリング教育への反映

Slide 3

Slide 3 text

#javado #北海道まったりLT大会  ⽣成AIで盛り上がる世の中で あえてJavaでのMachine Learningの話 3

Slide 4

Slide 4 text

#javado #北海道まったりLT大会 私とJSR 381の出会い 4 Java in Education for JUGS(教育機関でJavaを普及させるための取り組み)の紹介資料で 
 JSR 381についての言及を見かける えっ?このタイミングでJavaで画像認識? ...と、いちJUGリーダーの私ですら 
 初見時は反射的に思ってしまったが... AI技術があたりまえになり、 
 さらにAI技術を利用する・支えるための 
 データサイエンス・AI技術者育成も重要な今、 
 (学習者に積極的に触れてもらいたいという 
 立場からも)言語が正式にAI技術などへの 
 標準対応を進めることには必要性がある 
 とも思う ※最近のAI技術の着目はLLMなどの 
   ステージに集中してるのは承知の上で 画像出典 Java in Education for JUGS v2.0 
 https://jcp.org/ fi les/initiatives/java-in-education/materials/2023/ Java_in_Education_For_JUGs_2.0.pdf

Slide 5

Slide 5 text

#javado #北海道まったりLT大会 取り組み開始は2017年9月、2022年2月にFinal Release JSR 381に求められたもの 
 VisRec(画像の検出、認識、注釈付け)を中心とした、MLのための簡素な標準APIの仕様化 
 ⇒用途(Webやコマンドライン、JavaFXアプリ等)からの呼び出しを問わず、 
   独自の画像系MLの構築や事前学習済みの利用を必要とする開発者をターゲットとする 
 ⇒Javaでも独自のMLライブラリは存在する(DL4J, Amazon DJL, Deep Netts, etc...)が、 
 ライブラリごとに互換性のないクラス型、設定パラメータのわかりづらさ、 
   JavaアプリケーションとMLの統合しずらさなどの問題の解決を狙う 
  (なお、公式のExampleはDeep NettsやDJLを参照実装にしている) JSR 381: Visual Recognition (VisRec) Speci fi cation 5 参考 Justine Kavanaugh-Brown(2023), Introducing the Visual Recognition spec 
 for Java machine learning 
      https://blogs.oracle.com/javamagazine/post/java-visrec-api-for-machine-learning 
 JSR 381: Visual Recognition (VisRec) Speci fi cation 
      https://www.jcp.org/en/jsr/detail?id=381 A Java-Friendly ML API 🥰

Slide 6

Slide 6 text

#javado #北海道まったりLT大会 JSR 381でできること 6 画像出典 Zoran Sevarac(2021), jChampions JSR381 Visual recognition for java 
 https://www.slideshare.net/ZoranSevarac/jchampions-jsr381-visual-recognition-for-java 画像やデータ/物体の分類 
 (分類タスク) 数値の予測 
 (回帰タスク) 物体の検出 
 (分類+回帰)

Slide 7

Slide 7 text

#javado #北海道まったりLT大会 コード例 7 以下のコードを山川が意訳 
 https://github.com/JavaVisRec/jsr381-examples/blob/master/ 
   src/main/java/jsr381/example/IrisFlowersClassi fi cationExample.java データセットを 
 プロジェクトの内外から持ってくる BuilderでMLのモデルを 
 設定・学習(今回は分類の例) 学習したモデルを利用

Slide 8

Slide 8 text

#javado #北海道まったりLT大会 Demo ひぐまDukeはDukeか? https://github.com/JavaVisRec/jsr381-examples/ 8

Slide 9

Slide 9 text

#javado #北海道まったりLT大会 JSR 381は、画像認識用のMLを標準APIとしてJavaへ取り入れるもの 標準API化することで、ライブラリごとの型の違いなどを気にせずに、 
 Javaでも手軽にML(画像分類、数値予測、物体検出)を導入できるようにする データセットの準備、ビルダーでのモデル生成(と利用)、モデルを用いたタスクの実行 
 という、3工程で、JavaでもML処理を実行可能 Javaでも機械学習の学びとの連携ができるように、 
 もちろん既存・新規Java案件でもMLをこれまでより簡単に導入できることが目指されている まとめ 9 A Java-Friendly ML API 🥰

Slide 10

Slide 10 text

#javado #北海道まったりLT大会 • Justine Kavanaugh-Brown(2023), Introducing the Visual Recognition spec for Java machine learning 
 https://blogs.oracle.com/javamagazine/post/java-visrec-api-for-machine-learning • Zoran Sevarac(2022), Introduction to Machine Learning and Neural Networks for Java Developers 
 https://developer.oracle.com/learn/technical-articles/machine-learning-and-neural-networks • Zoran Sevarac(2021), jChampions JSR381 Visual recognition for java 
 https://www.slideshare.net/ZoranSevarac/jchampions-jsr381-visual-recognition-for-java • InfoQ(2020), Amazon Deep Javaライブラリを使ってマシンラーニングをJavaで実装する 
 https://www.infoq.com/jp/articles/java-machine-learning-djl/ • JSR 381: Visual Recognition (VisRec) Specification 
 https://www.jcp.org/en/jsr/detail?id=381 • Visual recognition specification for Java (JSR381) 
 https://github.com/JavaVisRec/visrec-ri • Reference implementation of JSR381's API using DeepNetts 
 https://github.com/JavaVisRec/visrec-api 参考リソース(より深く知るためには) 10