このページは平成時代に、生涯学習活動を活性化するためのネットワークの可能性を調べたものです。主として、Apache, Tomcat サーバを使い、ネットワークを使ったパソコン相談室、グループ談話室、Google Mapや電子国土の使い方、画像処理や簡単なデータ処理などの関連技術を検討しています。一般的なグループとしての情報交換や活動内容の公開や、ユーザー個人の情報発信などに使うことができると思います。更に今後のICT利用の可能性を検討するために、AI技術を検討してみます。ここでは、Python言語と関連モジュールについて、多方面のサンプルプログラムを中心に検討を加えてみます。検討用に開発したアプリおよび結果の一部は下記を参照してください。ネット上の事前調査でも明らかであるが、Python言語はコーディングが簡単である上に、AIや科学技術関連のモジュールが充実しているため、他の言語と比較しても非常に高い開発効率が期待できる。Wikipediaの記事件数は、日本語では100万、英語では500万、ドイツ語で200万件をはるかに超える記事が収録されている。これは、予想される東京直下型の地震が発生された時の避難者に相当するデータ量であるが、このようなビッグデータの分析にも、コーディングの容易さは有効である。恐らくここ数年は、最も利用価値のあるプログラム言語と言っても過言ではないだろう。IEEEの評価もこれを裏付けているように思われる。
PythonのGUI機能は、ここで紹介している、Python学習用のアプリでも使っています。評価編では、PyQt5モジュール、基礎編ではwxPythonモジュールで、ウインドウを構成しています。GUI機能は、効率的にプログラムを学習するためにも、新しいプログラムを開発するためにも、必要不可欠なものです。上記2モジュールにKivyとPyGameモジュールを加えて、Python学習(GUI編)としてまとめました。Kivyは付属の例題をそのまま実行できるようにしました。
下記は、Kivyモジュールを使った例題であり、NHKクリエイティブ ・ライブラリーの、百人一首の朗読を音声出力で聴けるようにしたものです。オリジナルサンプルのデータとサイズを変更し、日本語表示にしました。
Pythonはインタープリタ形式でプログラムを実行するので、開発したプログラムを配布するにはWindows実行形式に変換した方が便利です。実行ファイルに変更するには、いくつかのモジュールが利用できるが、ここではpyinstallerを使ってWindows実行形式ファイルを作成してみた。一例として、Turtle応用中の例題、アナログ時計(turtle_clock.py)を変換してみた。
コンソールで、
pyinstaller turtle_clock.py --onefile
を実行すると、distフォルダー中に、turtle_clock.exeが生成される。このプログラムは、背景画像を使っているので、ファイルを同じフォルダーに配置して、実行すれば、下図のような時計が表示されます。
Pythonの詳細機能を評価するためのアプリについては、下記で説明しているが、評価内容が多岐に渡っているため、操作性を考慮し、学習機能を限定したアプリを作成することにしました。下記Python学習アプリと異なる点は、例題データを限定したこととGUI基盤としてPyQt5の代わりに、wxPythonを使ったことです。またAI学習につなげるために、音声処理を加えてみました。
下記の学習用アプリで検討したように、Python はプログラム開発に優れており、これをウェブアプリ作成に活用することで更に用途拡大が期待できる。 ここでは、mod_wsgiをApacheに組み込んで機能を調べてみた。
Wikipediaは「最新の言語を使用した膨大なデータベースを提供してくれるプラットフォーム」であり、 日本語の形態素解析器のMeCabの辞書やAIに常識を教えるためのデータとして活用されている。
ここでは、CGIを使って、Pythonの機能を確認してみます。OpenCVモジュールを使って、左右にずらして撮影した写真を合成してみます。
AI, IoT化に対応できる有力なプログラム言語として、Python の機能について検討してみた。検討用に下図のようなPython 学習用アプリを作成した。
本アプリは、下記テーマ
機能評価のために用意した例題の項目は以下の通りです。選択した項目ごとに、プログラム処理を実行できます。例題プログラム総数は、578件 (2018-06-03)となっており、未整理の例題を合わせると1000件を超えています。
自治体などで公開しているオープンデータのうち、地理座標情報を持っているデータを表示してみました。いずれも元データをJSON形式のファイルに変換しています。公開されているデータの多くは、機械処理に適した形で作成されているわけでなく、何らかの修正が必要になる場合が多々あります。このような修正に対応するには、上記Python調査用に作成したアプリが役にたちました。参考例を次に示します。
OpenCV の機能を確認するために、Windows 環境で使ってみました。WindowsのJava版はバイナリ―で提供されているので、インストールが簡単で、バージョンアップにも迅速に対応できます。
左図の左上が原画像、中央がグレー画像で、次からSobelフィルタ処理した画像です。順に 上、下、左、右側の図の上から右、右下、左上、左下、右上各方向の検出結果です。
最後は、これらを合成したものです。
左が原画像、次がグレー画像、右がCanny フィルタでエッジを抽出した画像です。Canny フィルタの閾値パラメターを変化させて作成した画像をアニメーションで表現しています。なお、アニメーションに用いたエッジ検出画像は、OpenCVを用いたプログラムで作成していますが、アニメーションの作成は、GIMPで行っています。
OpenCV には、上述のようなフィルタ機能や顔検出や特徴量抽出などの多くの機能がそろっています。これらについては順次紹介していきたいと考えています。こちらのページをご覧ください。
Google Map と電子国土を同じウィンドウで表示できます。これによって、両者の地図に含まれる様々な情報を把握することができます。マップ上に情報を追記できるので、災害から観光まで、幅広い応用が可能になります。全国の自治体所在地とホームページのリンク情報をデーターベースとして利用しているので、簡単に各地域のマップを表示するとともに、公式サイトから地域の詳細情報を入手できます。東北地方太平洋沖地震データをプロットしてみましたが、ネット上で入手できるデータだけでも、地震、水害、過去の地形の変化、海底地形などさまざまな情報が存在していました。これら関連する各種データを一元管理するシステムを構築すれば、防災上の効果は計り知れないものがあるように感じています。
上は Google Map を表示したもの。下は電子国土の地図を表示したものです。
なお、土地条件図の黄色い部分は、河川の氾濫により運ばれた砂等が、堆積して出来た微高地を示しているようです。電子国土では、このほかにも過去の航空写真など、有用な情報が公開されています。現在ネット上では、このような膨大な情報が氾濫していますが、各情報のつながりが無い場合が多く、これが改善され利用者が有効に活用できるようになれば、かなりの災害が防止できるように感じています。
mouse computer のスティック型PC(MS-NH1-W10)の使い方について検討してみた。
ディスプレーは、HDMI でテレビに接続した、付属のケーブルは短いので、1m のケーブルを使った。無線マウスおよびキーボードを接続するために、USB ハブを用いた。ストレージは 32GB なので、マイクロSD 64GB を増設して、サーバー用アプリ、Apache 2.4.16 と Tomcat 8.0.24 をインストールしてみた。これで超小型のサーバーとしても使うことができる。確認のため、自作のウェブアプリ「IT学習塾」をブラウザで開いてみた。上図はそのスクリーンキャプチャ画像です。
マウスやキーボードを Bluetooth 接続に変えれば、ハブは不要でよりすっきりした構成になり、大画面のテレビを有効に利用できるパソコンとして、プレゼンテーションなどの用途拡大が考えられる。
教育は範囲が広いので、一般的な教材のリソースとして使えるリンク情報をまとめました。地方と大都市部と比較すれば、教育関連の施設の規模、内容に大きな格差があり、これを補うには、ネットワークの利用「が適している。多くの施設で、ディジタル情報を公開しているので、参考にしてください。
Scratch 入門
Scratch は、MITメディアラボが開発した小中学生のプログラム作成を支援するためのプログラミング言語です。この言語は、ブロックパレットにまとめられている命令ブロックを組み合わせることで簡単に対話的にアニメーション、ゲーム、ミュージックなどのプログラムが作成できるように工夫されています。そのため、児童の論理的な情報処理能力の向上に寄与することはもちろん、教育現場における教材の作成、生涯学習、特に高齢者の脳力向上などへの応用が考えられる。