話題の「Midjourney」を使ってみました!

みなさんは今話題の「Midjourney」をご存知でしょうか?

URL:https://www.midjourney.com/home/#about

Midjourneyとは、

Midjourney is an independent research lab exploring new mediums of thought and expanding the imaginative powers of the human species.

We are a small self-funded team focused on design, human infrastructure, and AI. We have 11 full-time staff and an incredible set of advisors.

だそうです。英語は苦手なもので、難しかったので、翻訳にかけると

Midjourneyは、新しい思考媒体を探求し、人類の想像力を拡張する独立した研究室です。

私たちはデザイン、ヒューマンインフラストラクチャ、AIに焦点を当てた小規模な自己資金によるチームです。11名のフルタイムスタッフと、素晴らしいアドバイザーを擁しています。

とのことです。

私が実際に使ってみた結論からいうと「とてもすごいAI」です。抽象的な表現になりますが、使ってみるとわかっていただけると思います。

使い方

手順

  • 「Midjourney」の公式サイトにアクセスします
  • Join the data をクリック!
  • Discordに招待がされるので、参加します
  • 「newbies-〇〇(番号)」の部屋があるので、移動します
  • 「/imagine prompt 〇〇(キワード)」を入力
  • そうすると自動で生成されます

使ってみました!

今回は「education」「education_technology」「technology_education」のキーワードで画像を生成してみました。

education
education_technology
technology_education

どれも「education」というキーワードで生成したため本の印象が強いように感じます。教育というのは明確な「モノ」ではないため、それぞれが抽象的な画像になっています。

番外として私の趣味である「nogizaka46」のキーワードで生成してみると

nogizaka46

グループカラーである紫をもとに、人の画像があるものもあるので、学習しているのを感じます。

権利的な問題は大丈夫?

「AIが生成した画像の著作権はどこに帰属するの?」という疑問は当然出てくると思います。私は法律の専門家ではないため、一度ニュース記事を調べてみました。

https://www.itmedia.co.jp/news/articles/2208/09/news162_3.html

上のサイトにはアメリカでの対応と、現在の日本での現状が記載されていました。気になる方は是非とも読んでもらいたいと思います!

まとめ

YoutubeのおすすめやGoogleの検索予測などAIは私達の身近なものになっています。「Midjourney」は絵を描くという。文化的な創作活動を行うAIになります。パラメータを変化させるとキーワードの強弱もつけることができます。色々試してみると、人間が絵を描く意味を考えさせられます。

このAIは今後の技術科にも入ってくる分野であるともうので、教材の一つとして使うのもいいのかもしれません!

 研究室紹介 2022年Ver

こんにちは、今回は今月の上旬に行われた、1年生に向けての研究室紹介の報告と紹介を行おうと思います!

やったこと

  • 小倉研究室の紹介
  • マシュマロタワー対決

を行いました。

今回の研究室紹介では、2年生を中心に活動を行いまいた。資料作成から、アイデア出しまで全て行っているのを見て、自分の研究室への理解も深まったと思います。

実際に作成したパワーポイント↓

研究室の概要について綺麗にまとめてくれました!

マシュマロタワー対決では、1年生VS上級生という構図ではありますが、上級生も本気で対決しました。

概要は下のTedTalkから見ることができます!

マシュマロ・チャレンジについて

時間の都合上、小倉研究室オリジナルルールで実施し、大変盛り上がりました。

作品の一例

学年を超えての交流や、下級生となかなか接点がない中で緊張しましたが、一年生に楽しんでもらうことができました!

8月の上旬には信州大学教育学部のオープンキャンパスも実施されます。小倉研究室も楽しみに皆さんをお待ちしております!

YouTube Data API v3 使ってみた!②

こんにちは。小倉研3年のpeaceです。
大変お待たせしました! 2ヵ月ぶりですね( ´∀` )
「YouTube Data API v3 使ってみた!」の第2弾です!

「まだ第1弾を見てない!」という方はこの記事を読む前にこちらを↓
https://www.mogura-lab.com/783

それでは第2弾スタート!

やりたいことの全体の流れ(超ざっくりとおさらい)

1.Google Cloud Platform への登録
2.APIキーの取得
3.信州大学公式YouTube【shinshuweb】のチャンネルIDの取得
4.信州大学公式YouTube【shinshuweb】のいろんなデータ取得

今回の投稿の内容

2.APIキーの取得
3.信州大学公式YouTube【shinshuweb】のチャンネルIDの取得

2.APIキーの取得

今回は、前回登録した「Google Cloud Platform」から「APIキー」を取得していきます。

APIキーの取得

「APIとサービス」という場所から「認証情報」を選択するとAPIキーが取得できる画面にすすめます。
ここでAPIキーを取得するときに、画面下側の「APIの制限」で有効なAPIキーを今回利用する[Youtube Data API v3]のみに設定しておくとGoodです!

3.信州大学公式YouTube【shinshuweb】のチャンネルIDの取得

ここからは、信州大学の公式YouTubeである[shinshuweb]のチャンネルIDを取得していきたいと思います。

YouTubeのチャンネルIDとは?

どのYouTubeチャンネルにも設定されている識別子(多くの対象の中から特定の1つを識別・同定するため用いられる名前や符号、数字等)のことです。

今回は、大量にあるYouTubeチャンネルの中から[shinshuweb]を見つける際にチャンネルIDが必要となります。

それでは、チャンネルIDの取得に使用したコードを載せておきます。
詳細は、コード中のコメントアウトを見てください。

次回からは、いよいよデータの取得をおこなっていきます!
しかし、Google Cloud Platformの体験期間が残り10日!
そして、今週末の3連休(7/16~18)が授業で全部つぶれるといった過酷なスケジュールなので、できたところまで載せる形になるかもしれません…
とりあえず、がんばるので次の投稿を待ってていただけたらと思います!

皆さんも、Google Cloud Platformの体験期間を使うときには計画的にご利用ください(笑)

最後までご覧いただきありがとうございました!

腕時計スタンド作成!

こんにちは!

今回は腕時計のスタンドを作成しました!久しぶりの木材加工はとても難しく、自己評価30点です笑

ぱっと見た感じでは、なかなか良い感じにできたと思ったのですが、角度を変えて見てみると

この作品のたくさんのミス

  • ボンドでの強制結合
  • 釘をミスして木材が割れる
  • 鉋をかけたにも関わらず、平らではない面 などなど

いっぱい欠陥がありました。しかしながら、本体を置く台座を回すことができるので、角度の調整ができるなど、良い面もあります!手作り感があることで、結果的に良い感じです。

次作るときは、もっとしっかり作りたいです、、、

たまにはまったりしたブログもありかな。最後まで読んでいただきありがとうございます。

LINEのAPIを使いこなそう!

LINEのAPIを知っているでしょうか?現代ではLINEはほとんどのスマホユーザーが利用しています。1つのツールとしてLINEのAPIを知っていると課題解決の方法が広がると思います。今回はLINEのAPIの導入方法を紹介したいと思います。

おしながき

  1. LINEのAPIの活用事例
  2. LINENotifyについて
    • Notifyの概要
    • 使い方(実装する直前まで)
    • やってみた
  3. LINE Messaging API SDK
  4. まとめ

LINEのAPIの活用事例

LINEのAPIを活用すると本当にたくさんのことができるようになります。公式LINEの仕様を変更することや、チャットボットの作成、アンケート集計などなど多岐にわたります。もちろんこのようなシステムは複雑でレベルも高いです。しかし、「メッセージを送るだけ」なら簡単にできます。なので、制作活動の中で必要な機能を少しずつできるようになれば、いずれ複雑なものを作れるようになると思います。

LINE API USE CASE」にはLINE が公式に公開しているAPIの活用法になります。レベルがとても高いですが、見てみると想像が膨らむと思います!

LINENotifyについて

Notifyの概要

LINENotifyはご存じでしょうか?

LINENotifyというのは「Webサービスからの通知をLINEで受信するツール」です。もう少し詳しく解説すると「Webサービスと連携すると、LINEが提供する公式アカウント”LINE Notify”から通知が届きます。複数のサービスと連携でき、グループでも通知を受信することが可能です。」となります。

LINENotifyサイトはこちら

LINENotify API Documentはこちら

Notifyの使い方(実装する直前まで)

ここでは、Notifyの「サービスへの登録」→「送信するルームの選択」→「トークンの発行」までを行いたいと思います。

LINENotifyのサイトはこちら

やってみた

import requests

TOKEN = 'トークンをペーストしてください'
url = 'https://notify-api.line.me/api/notify'
send_contents = 'LINE大好き'

TOKEN_dic = {'Authorization': 'Bearer' + ' ' + TOKEN} 
send_dic = {'message': send_contents}
requests.post(url, headers=TOKEN_dic, data=send_dic)

このコードを実行すると、先程決めたトークルームに「LINE大好き」と送られます。また、少しコードを増やすと画像も一緒に送信できるので、やってみてください!

この方の動画がとてもわかりやすいので、参考になると思います。

LINE Messaging API SDK

前のブロックでは「LINENotify」を扱いました。これは簡単に使えるので、とても便利な反面、できることにどうしても制約があります。今回紹介する「LINE Messaging API SDK」ではできることが格段に増えます。

できることの一例

LINECLOVAなどのAIとの 連携

LINEミニアプリでの活用

LINEPay決済ツールとの 連携

他サービスとLINEログインの連携

MessagingAPIを活用し双方向性のコミュニケーション

などなど、LINEサービスを使い尽くすことができます。

もちろん言語もほとんど網羅されいて、GitHubでAPIリファレンスが公開されています。URLはこちら

MessagingAPIではLINENotifyとは異なり、より多くの人にメッセージを送信でき、双方向性があるので、チャットボットの作成やAIも組み込むことができたら面白そうですね!

まだ、わからないことが多く、導入例などは今回は紹介しないのですが、今度作成したら紹介したいと思います。

まとめ

今回はLINEのAPIサービスの紹介を行いました。「LINENotify」は簡単に導入できるので、一度試してみる価値は全然あると思います!また、MessagingAPIもメッセージを送信するだけなら難しくはなく、Youtubeの動画などを参考にしたら活用できると思います。他のブログの時にMessagingAPIを活用したので、リンクを載せておきたいと思います。

また、LINEのビジネス用アカウントでは、メッセージ配信もできるので、チャックしてみるのもアリかもしれません。

今回のブログを通じて、LINEのAPIサービスを使うきっかけになればと思います。

ラズパイを用いたNFCリーダの作成②

今回は、実際にどのようにNFCリーダを作ったのかをこのブログを通じて残していきたいと思います。

おしながき

  • ラズペリーパイとモジュールの接続方法
  • モジュールとNFCの簡単な仕組み
  • 入退室システムの簡単な説明
  • まとめ

以上の3つで今回は作成していきたいと思います。前回のブログはこちらから見れるので、見ていない方は先に見てもらったほうがいいと思います!

ラズペリーパイとモジュールの接続方法

ラズベリーパイとモジュールの接続に関してはとても簡単です。図で表すとこのようになります。

ラズベリーパイとの接続方法を表した図

また、複数のセンサを活用したいときにはブレッドボード使うと複雑にはなりますが、レベルが高いこともできるようになります。インターネットで調べると細かい規格なども出てくるので、興味がある人は調べてみてください!

モジュールとNFCの簡単な仕組み

NFCとモジュールはどのような仕組みで個々のタグを識別しているのでしょうか?

このモジュールにはされている白いカードと青いタグが付属されています。それらにはそれぞれ12桁の番号が登録されています。それらを読み取ることで個々のタグを識別することができます。

今回はその番号と管理したい学生の学生番号をPythonの辞書形式である「キー」「値」で結びつけることができます。

では、どうやって番号を読み取るのか?

それは、すでに作られてるファイルを使います。

Githubから既存で作られているものを使います!リンクはこちらからお願いします!

入退室システムの簡単な説明

簡単な説明をGoogleスライドにまとめました。こちらをご覧いただけたらと思います。

まとめ

今回は「ラズベリーパイとモジュールの接続方法」「モジュールとNFCの簡単な仕組み」「入退室システムの簡単な説明」を行いました。前回に比べ内容が少し深くなり、専門知識感が増したかなと思います。 この入退室システムは一例にすぎなく、もっと他にいい管理方法やライブラリがあると思うので、もう少し、学習を進めたらと思います。次回はPythonのコードをもとに作成したものを解説していきたいと思います。

2022年のGolden Three Days 

山梨県へのお出かけ

お久しぶりです! 小倉研のMacです!

今年(2022年)の5月3・4・5日はゴールデン・ウィーク……いや、信大もの技にとってはゴールデン・スリーデイ(; ;)ホロホロ
いろいろお出かけしたので2部に分けて投稿しようと思いまーす!!

Let’s get started👍

第1部

5月3日山梨県の富士急ハイランドへ行ってきました!

これは“FUJIYAMA!!” 最高時速なんと130km/h( ゚Д゚) 約3分30秒の旅!?
待ち時間200分の後、乗車!!

こりゃ怖かった… けど、めっちゃ楽しかったから閉園間近に2回目!!笑笑
4人で行って1人(TT)( ̄∇ ̄)。

こちら”ええじゃないか”最高時速126km/h 回転数なんと1…14回!?!?
足がぶらぶらの状態で、身体はぐるんぐるん(*_*)
終わった後は髪の毛ボッサ笑 

ここまで第1部でした!
最高に楽しい1日でした!!皆さんも是非行ってみてください(^<^)
TO BE CONTINUE

ラズパイを用いたNFCリーダの作成①

どうもこんにちは、NFCを皆さんご存じでしょうか?身近なところだと、Suicaなどの交通系ICやUNIQLOやGUなどの会計の時に自動でアイテムを識別してくれるのもNFCの技術が用いられています。

さて今回作っていくのは、「ラズベリーパイ」「NFC」を組み合わせて、研究室の入退室システムを作っていこうと思います。

おしながき

  • システム要件
  • 今回使用するNFCリーダのモジュールについて
  • 通知方法について
  • まとめ

システム要件

今回のシステム要件(作りたいもの)は以下の通りです。

  • 言語はPython
  • NFCリーダ「MFRC-522 RC522 RFID」の採用
  • カードを読み取ったときにLINEにて通知を行う
  • 複数名での使用を想定

以上が今回作りたいものになります。

今回使用するNFCリーダのモジュールについて

今回使用するNFCリーダはAmzonなどで購入することができる格安モジュールのMFRC-522 RC522 RFIDになります。ここにAmazonのリンクを貼っておきます。

これはとてもお手軽に購入することができるので、チャレンジがしやすいと思います!また、別の方法としてPaSoRi RC-S380を使用する方法もありますが、今回は格安モジュールで作成をしたいと思います。

※格安モジュールでははんだ付けが必要となるので、ご注意いただけたらと思います。

Qiitaの方に別のNFCリーダの記事もあったので、共有します!

https://qiita.com/pf_packet/items/9a50d9f3b1f478930b02

通知方法

通知方法はLINEのAPIを使います。LINEのAPIには「LINENotify」と「LINEMassaging API」がありますが、今回は「Massaging API」を使ってみたいと思います。MassagingAPIはLINENotifyに比べると扱うのが難しいですが、その分できることもたくさんあるので、使いこなせる日が来たら良いなと思います。今回はメッセージを送信するだけなので、LINENotifyでも代用ができます。なので、LINENotifyを使う場合にはアレンジして使っていただけたらとおもいます。 

LINENotify公式サイトはこちら

LINE MessagingAPI公式サイトはこちら

まとめ

今回はこれから作成する作品についてのシステム要件と使用するモジュール、使用するAPIサービスを紹介しました。次回以降からは作成したコードから少しずつ解説も混ぜつつできたらなと思います。また別でLINENotifyは扱いたいなと考えています。

今回はこれで終わります。

PythonでWebスクレイピング(後編)

おしながき

  • 今回やりたいこと
  • 作る順番
    1. ライブラリのインストール
    2. コーディング
    3. Pandasを使って、CSV形式での保存
  • まとめ

今回やりたいこと

今回やりたいこととしては、

学校情報サイトから、「学校名」「生徒数」「住所」をスクレピングしていきたいとおもいます。そして、最後にはPadansを使って、CSV形式で保存するところまでやっていきたいと思います。

順序は

  • ライブラリのインストール
  • コーディング
  • Pandasを使って、CSV形式での保存

大まかに分けてこの3つになります。少し長くなってしまうかもしれませんが、ゆっくりやっていきましょう!

作る順番

1.ライブラリのインストール

今回使用するライブラリは「requests」「Beautifulsoup 」「pandas」「time」の4つです。webスクレイピングというと「selenium」もBeautifulsoup と同様に人気で使われていますが、今回は使用しないです。

インストールを行っていない方は

pip install requets
pip install pandas
pip install Beautifulsoup

をコマンドプロンプトでやっていただければインストールをできます。

2.コーディング

下のものが本編になります

#今回使うライブラリ
import time 
import requests
from bs4 import BeautifulSoup
import pandas

#スクレイピングをするサイト
#URLは今回は伏せておきます
url='@@@@@@@@@@@@@@@@@@@@@@@@@@@'

#requestsを使って、URL先の情報を取得
res=requests.get(url)
soup=BeautifulSoup(res.text,'html.parser')
school_list=soup.find_all('li',attrs={'class':'school_list_city'})


for details in school_list :
    school_details={}
    sdd=details.find('div',attrs={'class':'school_detail_data'})
    school_name=sdd.find('p',attrs={'class':'school_name'}).find('span').text
    shcool_item=sdd.find('p',attrs={'class':'item'})
    total_students=shcool_item.find('span',attrs={'class':'border_underline'}).text
    ads=sdd.find('p',attrs={'class':'item position'})
    ad=ads.find('span',attrs={'class':'small'}).text

    school_details['学校名']=school_name
    school_details['生徒数']=total_students
    school_details['住所']=ad
    data.append(school_details)
    time.sleep(2)

コードがきれいに書けていないかもしれませんが、まだまだ勉強中の身なので、ご容赦していただければと思います

少し解説をさせていただくと

ところどころに「~.find(‘@@’),attrs={‘class’:’%%%’}」と言った記述がたくさんあると思います。これを抑えることができたら簡単なスクレイピングは可能かと思います。

これを日本語変換してみると「~の中の一番最初の@@タグのclassの%%%を指定します!」といった感じです。HTMLというデータはとても大きいものなので、一気に操作を行うのではなく、少しづつ絞っていくとやりやすいのではないかと思います。

3.Pandasを使って、CSV形式での保存

スクレイピングをしたデータをpandasを使って、DataFrameに格納し、それをCSV形式で保存することは一見難しそうに見えますが、案外簡単です。

#pandasを使って、DataFrameに格納
df=pd.DataFrame(data)
#CSV形式で保存
df.to_csv('学校の情報.csv',index=False,encoding='utf_8_sig')

この2行だけで終わりです。少し解説をさせていただくと、「index=False」というのは、DataFrameに格納した際にインデックス番号が同時に付与されるのですが、「CSV形式で保存するときにそのインデックス番号はいらないよー」ということです。

まとめ

かなり駆け足でBeautifulsoup を使ったWebスクレピングを紹介していきました。高校情報Ⅱの教員研修資料にも今回のBeautifulsoup を使ったWebスクレイピングは紹介され、今後必要なスキルの一つになるのではないかと思います。

また、プログラミングは様々な勉強ツールがあります。今回は私が勉強するときに使用したYouTubeの動画のURLを載せておきたいと思います。勉強するときの助けになればいいなと思います。

Matsumotoメグリ①

こんにちは。新二年生のらんです。

運動が好きで、高校の時は軟式野球部に入っていて、今は女子ラクロス部に所属しています。

ラクロス部は先輩後輩の仲がよく、部活中も部活後も楽しく活動しています。

興味が湧いたら是非見学に来てみてください。

今回は、松本にいたときに巡ったお店の中でオススメの場所の一つを紹介していきたいと思います。

お店の名前はTOIETです。ここはジェラート専門店で、季節ごとに違う味が楽しめます。

私のオススメはモンブランです。時間があったら一度訪れてみてください。

これからよろしくお願いします!