Loading

Notitia新メンバー募集中!

こんにちは、さやです🐰

 

新入生のみなさん!
ご入学おめでとうございます!!🌸

Notitiaの新メンバーを募集しているのでお知らせしたいと思います!

 

 

そもそもNotitiaって何?という方に簡単に説明しますね😊

Notitiaとは先端理工学部 知能情報メディア課程の学生広報チームで、
大学のいろいろな情報を学生目線で発信しています!

主な活動内容は、
・Notitiaのホームページ管理
・ブログの更新
・7号館のサイネージディスプレイに表示する映像製作
などなど、、、

ホームページを作ったり動画を作るための技術は、
不定期で行う勉強会で学べるので初心者の方でも大丈夫です!

 

興味のある方は是非一度、NotitiaのTwitterにDMしてきてください!
何回生でもお待ちしてます~~

 

以上、さやでした。

Pythonを使ってみませんか?[新刊情報]

こんにちは、さやです🐰

今回紹介するのは『日経Linux 3月号』です。

今月号では、Linuxの入門から「Python」「電子工作」「AI」「サーバー」という4つの活用法について学べる特集や、性能が大幅に向上した「Raspberry pi 4 Model B」を検証・活用する特集が掲載されています!


今月号の中で私が気になった記事は、『「Python」を使ってみよう』という記事です。

私が1回生の授業で習ったのはC言語だけだったので、その他の言語も勉強したいと考えていた私にぴったりの記事でした😊

Pythonは文法がシンプルでプログラミング初心者におすすめな言語とされています!
計算・統計処理で使用できるライブラリ(アプリケーションで利用するためにまとめられたプログラム集)が豊富で、近年注目を集めている人工知能深層学習(Deep learning)の分野でも支持を得ています。

今月号では『step1:Pythonを使うための環境を構築』『step2:基本文法の習得』『step3:応用例』
というようにスリーステップにわけて掲載されていたので、初心者の私でも読みやすかったです😊


ほかにも、
▽Linuxインストール方法

▽Linuxのアプリを使いこなすための特集

などが掲載されています。

この本は7号館入口の書架に置かれています!
春休みの今は大学に来ることが少ないかもしれませんが、機会があれば読んでみてください😊

以上、さやでした~

 

 

Raspberry Piで遊ぼう! 【フレーム差分法の紹介】

どもー、たなかです!
たなか「なんか唐突にRaspberry Piで遊びたい!」
と言ったわけで、Raspberry Piで監視カメラを作ろうと思います!
まあ、「ラズパイで遊ぶ」&「監視カメラを作る」しか決まってないので
とりあえず、適当にやるかということで


監視カメラと言ったらとりあえず
カメラを使って映像をリアルタイムに表示出来るようにすればいいので
PythonのOpenCVを利用して↓のようにWebカメラを利用して表示した!

import cv2

capture = cv2.VideoCapture(0)

while(True) :
ret, flame = capture.read()
cv2.imshow('Raw Flame', flame)

k = cv2.waitKey(1)
if k == 27 : #escを押すと終了

break

capture.release()
cv2.destroyAllWindows()

とりあえず、これを使えばwebカメラからの映像が見れます!
「監視カメラの映像を見る」というのには、成功したので
次の段階へ


では、ラズパイで映像をどうやって送るか…
やっぱり、監視カメラは遠隔で見たいじゃないですか!
ということで、私が考えた方法は、何かしらが動いたら写真を撮り、それをネットのなんかでアップするという方法です!

では、今度はWebカメラで写真を撮るプログラムを作成しよう!

import cv2

cam = cv2.VideoCapture(0)
img = cam.read()[1] cv2.imwrite("sample.jpg", img)

cam.release()

↓のように撮れました!


何かしら動いたらどうして反応させるか

「フレーム差分法」というアルゴリズムを使って撮影させよう!
詳しくはこちら

んで、ソースコードをどうぞ

import cv2

save_path = "./save_image/"

camera = cv2.VideoCapture(0)

img1 = img2 = img3 = get_image(camera)

th = 300
n = 1

while True :

if cv2.waitKey(1) == 27 :

break

diff = check_image(img1, img2, img3)

cnt = cv2.countNonZero(diff)

if cnt > th :

print("taked image")
cv2.imshow('PUSH ENTER KEY', img3)
cv2.imwrite(save_path + str(n) + ".jpg", img3)
n += 1

else :

cv2.imshow('PUSH ENTER KEY', img3)
img1, img2, img3 = (img2, img3, get_image(camera))

camera.release()
cv2.destroyAllWindows()

def get_image(camera) :

img = camera.read()[1] return img

def check_image(img1, img2, img3) :

gray1 = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_RGB2GRAY)
gray3 = cv2.cvtColor(img3, cv2.COLOR_RGB2GRAY)

diff1 = cv2.absdiff(gray1, gray2)
diff2 = cv2.absdiff(gray2, gray3)

dif_and = cv2.bitwise_and(diff1, diff2)

_, dif_wb = cv2.threshold(dif_and, 30, 255, cv2.THRESH_BINARY)
diff = cv2.medianBlur(dif_wb, 5)
return diff

これで、以下のような写真が撮れました!

これらが3枚撮れて
これの差分を撮った写真がこれです!

差分だけでgifファイルを作るとこんな感じ


といった感じで、ラズパイで遊んでいます!(現在の進捗状況はここまで)
フレーム間差分法ではなく、これをTensorflowの機械学習で認識させたいので
これからも遊びたいと思います!
以上!

プログラミング学習会の実態!【プロコンPBL】

どもー、たなかです!
EMICsのtwitterでも報告をしていましたが、今回はPBLのお話です!

わたしたちがプログラミング学習会で何をしているかを紹介したいと思います!


そもそも、なんの目的で集まっているのか?

われわれは、山本先生を中心にプログラミングコンテストであるACM-ICPCを出場を目指し
日々、Javaでアルゴリズムの勉強をしています!
主に、下のプログラミングコンテストチャレンジブックを利用してアルゴリズムを学んでいます!


具体的にはどんなことをやっているのか?

では、具体的にやっていることを紹介したいと思います!
毎回一人誰かが先にチャレンジブックのアルゴリズムをひとつ読み理解しパワポを作成し、皆の前で解説するといった感じでやっています!
↓は私が作った貪欲法についてのパワポです!
GreedyAlgorithm
そのあと、AOJというサイトを利用して、解説したアルゴリズムの類似問題解くという流れになっています!
↓貪欲法の類似問題!
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0521
ぜひ!解いてみてください!
(アカウントを持っていると答え合わせしてくれるのでおすすめです!)


最後に

いかがだったでしょうか?
こんなプログラミングをする春休みも楽しかったので
みなさんも次の夏休みを充実したものにしましょう!

プログラミングの大会出場を目指します!【プログラミングの勉強会】

どもー、たなかです!
今回はわたしが、かねてより待ちわびていた!

山本准教授による

「プログラミングの大会に向けてのプログラミング勉強会」がスタートしました!!

プログラミングの大会とは?
ACM-ICPCというプログラミングの大会です
(こちらから詳細が見ることが出来ます!)

これから、約半年をかけて
プログラミングの勉強していく第1回が
10/1に行われました!

ざっくり、やったことをまとめると

こちらを問題を
C言語で解くということをしました!

感想しまして
「正直、答えを聞いて唖然としました」
フローチャートは偉大だと感じた…

皆さんも一度解いてみてはどうでしょうか?

以上です!

brain なんちゃらを触ってみました~

どもー、たなかです

今回は、ある講義でやってみろと言われた難解言語
その名も「brain f**k(汚い言葉なので伏せるのが基本だそうです)
やってみようと思いつつ、なんか調べてみるとPHPに面白いライブラリがあったので
それを使って改悪をしてみようかなと思いまーす!

 


 

まず、brainなんちゃらの解説を適当にやっていきたいと思います!

brainなんちゃらとは8つの命令コードだけで構成された言語で(覚えやすいねw)
詳細はWikipediaに任せてここでは、「Hello World」という文字を表示させるコードを書きたいと思います!

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------------------------------------------------------------------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++.+++.------.--------.

こうです!!!簡単!!(だって’+’, ‘-‘, ‘ .’だけで表現できますし…)

 

冗談はさておき、ちゃんと書きます(ちゃんと8つのコードで書きますよ…)

+++++++++++++++[>+++++>+++++++>++<<<-]>---.>----.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.

 

Cのソースコードも書いておきます!!↓

#include <stdio.h>

void main()
{
	printf("Hello World");
}

Cのが楽?いやいや難解言語ですからwwww(ちなみにwhite spaceという意味不明な言語もある模様)
とまあ、こんな感じで、覚えやすくても理解しにくい言語です!!!

 


 

んで、brainなんちゃらを調べていると、面白いライブラリが見つかったので
早速、改悪をしていこう!

単純にbrainなんちゃらの命令コードに何か文字を置換させるライブラリです
やり方については省きます。知りたかったら、私に聞くかネットで頑張るしてください

とりあえず、開発中の様子です↓

 

完成した「Hello World!」の結果がこちら
それぞれにメンバーの名前とNoTiTiaで作りました!

りょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろめぐわっきーりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろわっきーりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろわっきーりょーたろりょーたろりょーたろわっきーりょーたろたなかたなかたなかたなかMISAKINoTiTiaわっきーりょーたろりょーたろぶんぶんわっきーりょーたろぶんぶんりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろぶんぶんぶんぶんりょーたろりょーたろりょーたろぶんぶんわっきーりょーたろりょーたろぶんぶんたなかたなかりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーんたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろりょーたろぶんぶんわっきーぶんぶんりょーたろりょーたろりょーたろぶんぶんMISAKIMISAKIMISAKIMISAKIMISAKIMISAKIぶんぶんMISAKIMISAKIMISAKIMISAKIMISAKIMISAKIMISAKIMISAKIぶんぶんわっきーりょーたろぶんぶんわっきーぶんぶん

 

「ゲシュタルト崩壊しますわーこれw」

みなさんもこんなことをやるために面白く勉強していきましょう!

では、「+++++++++++++++[>++++>+++++++>+++++++<<<-]>++++++.>++++++++++++++++.>—-.」