話題の「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月の上旬には信州大学教育学部のオープンキャンパスも実施されます。小倉研究室も楽しみに皆さんをお待ちしております!

腕時計スタンド作成!

こんにちは!

今回は腕時計のスタンドを作成しました!久しぶりの木材加工はとても難しく、自己評価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リーダの作成③

前回までは、ラズベリーパイとモジュールの接続の方法や、仕組みなどを説明してきました。まだ、見ていない方は見てみてください。

今回は、実際にPythonのコードとどんなことに気を付けてコードを書いたかを残していきたいと思います。

おしながき

  • 使うライブラリ一覧
  • メインのコード
  • LINEを送信するためのコード
  • MFRC522を読み込むためのいろいろなファイル
  • まとめ

以上5本立てでいきます。

使うライブラリ一覧

今回使うライブラリは

インストールしてください!

メインのファイル

  • time
  • sympy

LINEの送るファイル

  • line-bot-sdk
  • json

NFCを読み込むファイル

  • sys

これらが使用するライブラリになります。timeやsysといった有名ライブラリはanacondaパッケージに入っていますが、line-bot-sdkといったマイナーなライブラリはパッケージに入っていないので、ターミナルやコマンドプロンプトからインストールしましょう!

メインのコード

import linebot2
from time import sleep
import sample

memberlist={'000000000000':'20e18AA','1111111111111':'20e18BB','222222222222':'20e18CC'}
#memberlistには'タグの12桁':'管理したい学籍番号'の順番で記述

membercount={'20e18AA':0,'20e18BB':0,'20e18CC':0}
#membercountは入退室を管理する番号
 
while True :
    id_num = sample.read()
    print(id_num)
    number= str(id_num))
    print(memberlist)
    try :
        input_count = memberlist[number]
        #print('input_count:',input_count)
        #input_count(学籍番号)
        for i in membercount.keys() :
            if input_count == i :
                membercount[i]=membercount[i]+1
                if membercount[i]%2==1 :
                    message=i+'入室しました'
                    linebot2.main(message)
                    print('Complete')
                    sleep(3)
                    break
                else :
                    message=i+'退室しました'
                    linebot2.main(message)
                    print('Complete')
                    sleep(3)
                    break
            else :
                continue
    except KeyError:
        input_new=input('新しく登録しますか?_はい→1いいえ→2')
        if input_new=='1':
            input_name=0
            input_figure=input('学籍番号を教えて下さい(半角英数字)')
            membercount[input_figure]=input_name
            memberlist[number]=input_figure
            print('登録できました')
            sleep(5)
            continue
        else:
            print('はじめからやり直してください')
            sleep(5)
            Continue

この長いのが今回のメインのコードになります。前回のブログでの登録していないタグが来たときにも、新しく辞書に追加できるように仕様を変更しました。基本的にはwhileで回しながら、分岐をしていく簡単なものです。書き方がかなり乱雑ですが、一応動きます!

LINEを送信するためのコード

import json
from linebot import LineBotApi
from linebot.models import TextSendMessage


file=open('info.json','r')
info= json.load(file)

CHANNEL_ACCESS_TOKEN=info['CHANNEL_ACCESS_TOKEN']
line_bot_api=LineBotApi(CHANNEL_ACCESS_TOKEN)
def main(message):
    messages=TextSendMessage(text=message)
    line_bot_api.broadcast(messages=messages)
{CHANNEL_ACCESS_TOKEN":"ここにアクセストークンをペースト",
"USER_ID":"ここにユーザIDをペースト"}

 ここでは、LINEを送信するためのコードになります。ポイントはJsonファイルを使用しています。JsonファイルでユーザIDとアクセストークンを保存することで、スマートになるのかなと思います。

 Pythonファイルでは、Githubに公開されているものから使用する部分を残したものになります。一つ変更点があります。、公式ドキュメントの例では、「line_bot_api.push_message」となっていますが、「line_bot_api.broadcast」に変更することです。push_messageではUserIDの1番先頭の人にしかLINEが送られません。今回は、複数名に入室のLINEを送信したいので、push_messageでは要件に合いません。しかし「line_bot_api.broadcast」に変更することによって、全員に送信することになるので、非常に便利です。

MFRC522を読み込むためのいろいろなファイル

この隣のファイルは前回のブログでも紹介したGitHubのファイルになります。前回のブログからダウンロードした場合にはダウンロードは不要です。このファイルの中には追加でSample.pyのファイルがあります。そのファイルは今回の「入退室システム」用に引数や、return値をいじったものなので、使用する際には活用していただけたらと思います。

まとめ

以上が「入退室システム」のコードになります。繰り返しになりますが、コードの書き方が綺麗ではなく、見にくい箇所や回りくどい書き方や間違っているが多々あると思います。そのときには、良い感じにしていただいて使っていただけたらと思います。

一つの作成を通じて、Pyhtonだけでなく、LINEについて、ラズベリーパイについて、たくさんの学びにつながりました。教育学部技術科の範疇は超えているかもしれませんが、このような学びを行うことができて良かったと思います。

以上で「ラズパイを用いたNFCリーダの作成」終了です。

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

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

おしながき

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

まとめ

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

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

おしながき

  1. Webスクレイピングとは?
  2. Webスクレイピングを行うときに注意すべきこと
  3. まとめ

1.Webスクレイピングとは?

Webスクレイピングの定義を調べてみると、、、

Webスクレイピング(Webデータ抽出、スクリーンスクレイピング、Webデータ収集とも呼ばれる)は、Webサイトから大量の情報を自動的に抽出するコンピュータソフトウェア技術のことです。データの多くはHTML形式の非構造化データで、これをスプレッドシートやデータベースの構造化データに変換することで、さまざまなアプリケーションに利用することができます。Webスクレイピングの主な使用例としては、価格監視、価格情報、ニュース監視、リードジェネレーション、市場調査などが挙げられます
引用:https://www.octoparse.jp/blog/web-scraping/#div1

といったように、インターネット上の情報をプログラムを使って、大量に抽出することを指します。抽出されたデータは「.xlsl」や「.csv」の形式で出力され、市場調査やデータ分析等に使われます。今回行うことは、Pyhtonでwebスクレイピングを行いますが、最近では、ノーコードでもWebスクレイピングを行うことができます。一例ではありますが「Octoparse」といといったサービスもあります。興味がある方はぜひともチェックしていただきたいと思います。

2.Webスクレイピングを行うときに注意すべきこと

 Webスクレイピングはとても便利な反面、注意すべき点ももちろんあります。それは

  • サーバへの負荷をかけすぎない
  • そのサイトがスクレイピングをしても問題ないか

これらのことを最低限注意しなければなりません。

 1つ目のサーバへの負荷については「間隔を開けてアクセスする」ことが一番手っ取り早いと思います。Pythonであれば

import time
for i in range(5):
    print(i)
    time.sleep(1.0)

のように、1秒ごとの間隔をあける工夫をすることで、負荷を減らすことができます。難しいことではないと思うので、思いやりの心を持ってやっていただけたらと思います。

 2つ目の「そのサイトがスクレイピングをしても、問題がないか」についてはしっかりと確認する必要があります。今回は有名なスクレイピングを行ってはいけない代表的なサイトを紹介したいと思います。

  • Amazon
  • Rakuten(楽天)
  • Twitter、Instagram、FacebookなどのSNS

これらのサイトの他にもスクレイピングを行ってはいけないサイトはたくさんあります。なので、行う前に対象のサイトの「利用規約」をしっかりと確認することが大切です。これら無視した場合「偽計業務妨害罪」に問われる可能性があります。更に細かいことは下のリンクに書いてあったので、気になる方はスクレイピングを行う前に確認してもらうといいと思います。

3.まとめ

Webスクレイピングは大変便利な半面、怖い観点もあります。なので、サイトに迷惑をかけない範囲で行うことが重要なのかと思います。後編では実際にどうやってスクレイピングを行うのかを解説をしたいと思います。

新しい年がやってきました

あけましておめでとうございます。新しい年がやってきました。小倉研究室にとっては今年は重要な年になりそうです。2021年4月に発足したこの研究室ですが、喜ばしいことに2022年4月には新しい仲間がやってきます。

それではこの研究室でこの年にやろうかなと考えていることをここに書いておきます。

今年の野望

1.ホームページのクオリティの向上

2.研究室としての何かしらの作品の製作

3.個人のスキルアップ

4.健康維持

この感じで頑張っていきたいなと思います。しかし、これらはすべて漠然としたものであって、具体的ではないです。これからゆっくりとそれぞれが考え、行動しこのブログに報告・記録をしていきたいと思っています。

このホームページもどんどん新しくなっていきます。

定期的なチェックをお願いします!!!

善光寺で写真を撮ってきたよ

こんばんわ、もうすぐクリスマスでもあり、お正月でもあるこの季節。子供のころはこの季節が一番楽しみでした。最近は秋と春が恋しいです。

現在(2021年12月22日)、善光寺ではライトアップや街頭のイルミネーションを行っています。さらに、同じコースである、信州大学の村松研究室の活動に参加させていただき、ライトアップの活動を一緒にさせていただきました。いつもありがとうございます。

村松先生の研究室のホームページです。いつもありがとうございます。

今回はそんなこともあり、写真をいくつか撮ってきたので、紹介したいと思います!

城山公園からの善光寺
ド派手にライトアップされている善光寺

善光寺の正面ではプロジェクションマッピングを行っていてとてもきれいでした。音楽と光、色も多彩で二回も立ち尽くしてみていました。時間は19時頃でもかなり人も多かったです。

今回は普通に写真を撮影するのではなく、スマートフォンと私が高校生から使っているまだ現役と信じている一眼レフカメラの比較を行いたいと思います。

頑張ってる一眼レフ
現役のiPhone11

同時刻にほとんど同じ位置から撮影したのにも関わらず、見え方がかなり違いますね。一眼レフでは、黒色がはっきりしているのに対して、iPhone11ではかなり鮮やかに見えます。これが補正です。色鮮やかな風景を綺麗に撮りたいときはスマートフォンで、しっかりと黒を出したいときには一眼レフという使い分け方もいいですね。

最後に今回撮影した写真をスライドにして、今回は終わりたいと思います。

新しい一眼レフがさしぶりに欲しくなりました。ありがとうございました。

ぼくだいがくせい

地方大学生

こんにちは、

この研究室で活動をこれからなんとなくつづっていこうと思います。

また、地方大学生ならではのことや、教育学部の実態、技術科とは何をするかを書いていけたらなと思います。

無頓着な高校生

自己紹介からお願いします。

地方大学生

自己紹介をしたいと思います。

教育学部所属、2年生、です。

主に情報系を扱っていて、これからワードプレスの使い方や、Pythonについて扱えたらいいななんて思っています。

すべて独学で行っているものなので、情報に誤りがあるかもしれませんが、その際はご了承ください。勉強します。

無頓着な高校生

ありがとうございました。

これから、ゆっくりと進めていこうと思うので教育学部志望の方、大学生活に興味がある方はたまに読んでいただけたら嬉しいです。

筆者ゆう