takuroooのブログ

勉強したこととか

YouTube Live Streaming API でライブ配信する

YouTube Live Streaming APIを触ってみたのでその覚え書き 目次 目次 YouTube Live Streaming APIとは とりあえずAPIを触ってみる APIを使う前にやること 事前準備 APIキーとOAuth クライアントID クライアントライブラリのインストール リソースについて Li…

Go JSONをデコードする

jsonパッケージのDecoderを使うとjsonデータを簡単にパースできる。 golang.org 目次 目次 変数名で対応付ける 構造体タグ名で対応付ける 一致しないkeyがあったときにエラーを返す 変数名で対応付ける package main import ( "encoding/json" "fmt" "string…

Go シグナルをチャネルで受け取る

golang.org signal.Notifyを使うとチャネルでシグナルを受け取ることができる。 package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { sigCh := make(chan os.Signal) signal.Notify(sigCh, syscall.SIGINT) s := <-sigCh fmt.Printf("%…

Go path/filepathでファイルパスを操作する

パス名の操作に便利なfilepathを触って見たのでまとめていく。 golang.org 目次 目次 filepath.Abs filepath.Base filepath.Clean filepath.Dir filepath.EvalSymlinks filepath.Ext filepath.Glob filepath.Join filepath.Match filepath.Rel filepath.Spli…

Go strings/Reader

strings.Readerを触ってみた。 golang.org 目次 目次 NewReader Read ReadAt ReadByte Reset Len/Size Seek NewReader strings.Readerのポインタを生成する。 reader := strings.NewReader("abcdef") fmt.Printf("%T %v\n", reader, reader) // *strings.Rea…

Video.jsでHLS/MPEG-DASH対応Playerを作る

JavaScriptのVideo.jsを使うとHLSとMPEG-DASHに対応したplayerが簡単に作れそうだったので作ってみた。 今回使ったVideo.jsの基本機能をまとめていく。 github.com 目次 目次 作ったplayer Video.js CDN Player生成 Playerオブジェクト生成 Playerに再生する…

Go stringsで文字列を操作する

Goの文字列操作を勉強したのでそのまとめ。 目次 目次 大文字小文字変換 タイトルケースに変換 文字列を比較 文字列の中に特定の文字列が存在するか 指定した文字数をカウント 空白文字でsplit 先頭/終端文字列の一致確認 文字列のインデックスを取得 slice…

GoのArrayとSliceの違い

先週からGoを勉強し始めた。 blog.golang.org ArrayとSliceがいまいちわからなかったが、この記事を読んでArrayとSliceの違いを学んだので自分なりにまとめてみる。 目次 目次 ArrayとSliceの違い(記事を読む前の認識) Array Array型とはなにか Array型の…

Qt for Python Exif Viewer

QTreeWidgetとQTextEditとQSplitterとQStackedWidgetを使ってExifViewerを作った。 github.com 以前作ったViewerはQTreeWidgetメインでGUIを作成したが、今回はQSplitterとQStackedWidgetを使ってページが切り替わるようなUIにした。 自作ExifParser UI以外…

QStackedWidgetの基本的なこと

Qt for Python(PySide2)のQStackedWidgetについて勉強したのでまとめていく。 目次 目次 QStackedWidgetとは StackedWidgetを表示する StackedWidgetに登録されたwidgetをインデックスで指定して表示する StackedWidgetに登録されたwidgetをwidgetのインスタ…

QSplitterの基本的なこと

Qt for Python(PySide2)のQSplitterについて勉強したのでまとめていく。 QSplitterを使うと複数のwidgetの間にサイズを調整できるスプリッターを置くことができる。 目次 目次 SplitterでTextEditを水平に2つ表示する SplitterでTextEditを垂直に2つ表示する…

QTextEditの基本的なこと

前回に引き続きQt for Python(PySide2)のQTextEditについて勉強したのでまとめていく。 QTextEditを使うとテキストを入力できるフォームを作成することができる。 目次 目次 TextEditを表示する TextEditに文字をを表示する 編集禁止にする 文字の色を変える…

QTreeWidgetを使ってExifViewerを作る

前回紹介したQt for PythonのQTreeWidgetを使って簡単なExifViewerを作ってみる。 コード全体(60行くらい)は最後に記載。 takuroooooo.hatenablog.com 目次 目次 全体構成 ExifViewer完成画面 処理手順 1.JPEGからExifを取得する 2.Exif情報を使ってTreeを生…

QTreeWidgetの基本的なこと

最近仕事で処理結果をGUIで表示させたいことがあったのでPythonのQtを勉強してみた。 PythonのQtにはPyQtとQt for Python(PySide2)があるけど、今回は最近登場したQt for Python(PySide2)を使って簡単なTree構造の作り方をまとめてみようと思う。 Qt for Pyt…

AtCoder Beginner Contest 139

9/1のABC139は4AC5WAだった。初めてコンテスト中にD問題解けたけど、いつものD問題よりも難易度が低く正解している人が多かった印象。 atcoder.jp A問題 問題 自分の回答 B問題 問題 自分の回答 間違ったコード 正解したコード 他の人の回答みて勉強になった…

転倒数とBinary Indexed Treeについて考える

前回のAtCoderのコンテストで転倒数というものが出題された。 atcoder.jp 転倒数というものを知らなかったので転倒数についてまとめてみる。またコンテストの問題をBinary Indexed Treeで解いてどういう処理の流れになっているかを整理する。コンテストの問…

AtCoder 第一回日本最強プログラマー学生選手権-予選-

8/24にAtCoderで第一回日本最強プログラマー学生選手権-予選-が開催された。学生以外も参加できてレーティングが変化するとのことだったので参加したが、Aしか解けなかった... atcoder.jp A問題 問題 自分の回答 他の人の回答みて勉強になったこと B問題 問…

AtCoder始めました

8月5日からAtCoderを始めた。 atcoder.jp AtCoderとは AtCoderを始めた理由 AtCoder登録してから2週間でやったこと 1.過去問解いた 2.コンテスト出た 3.人のコード読んだ 今後やろうと思っていること AtCoderとは AtCoderとはホームページによると オンライ…

Random Erasing Data Augmentation

Data augumentation関連の論文メモ 図は論文からの引用 目次 概要 論文リンク 著者 従来の課題 提案手法 アルゴリズム 結果 矩形領域を埋める値 Object Detectionへの適用 自分の実装 概要 入力画像上に所定パラメータに従った矩形領域を生成するRandom Eras…

You Only Look Once: Unified, Real-Time Object Detection(CVPR2016)

ObjectDetection関連の論文メモ 図は論文からの引用 目次 概要 論文リンク 著者 従来の課題 提案手法 ネットワーク構成 検出方法 ロス関数 結果 参考リンク 概要 従来の2stageの物体検出手法とは異なり、バウンディングボックス予測とクラス認識を同時に行い…

Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

論文メモ 図は論文からの引用 目次 概要 論文リンク 著者 従来の課題 提案手法 結果 実装 概要 入力画像のサイズによらず、固定サイズの特徴マップを出力するspatial pyramid poolingの提案。 論文リンク https://arxiv.org/pdf/1406.4729.pdf 著者 Kaiming …

2019年上半期に参加した勉強会まとめ2

目次 2019/03/26 LINE AI Talk #01 2019/3/28 Machine Learning Team Building Pitch 2019/04/06 nlpaper.challenge NLP/CV交流勉強会(最終回) 2019/05/11 SysML2019 論文読み会 2019/05/15 第21回ステアラボ人工知能セミナー 2019/06/08 DLLAB 2 周年イベン…

2019年上半期に参加した勉強会まとめ1

2019年上半期に参加した勉強会まとめ 長いので2つに分けてまとめる。 目次 2019/02/02 fpgax #11 + TFUG ハード部:DNN専用ハードについて語る会 2019/02/27 Edge Deep Learning Summit 2019/03/04 SIX2019 2019/03/15 【緊急開催】キカガク&マスクド・ア…

2018年に参加した勉強会まとめ

2018年8月22日にconnpassに登録してから定期的に勉強会に参加しているので、(まずは)2018年に参加した勉強会をまとめてみた。 勉強会に参加するまで分からないことがあれば自分でネットで調べたり本を買ったりして勉強していたけど、 勉強したいことの幅と…

GWでやったこと

10連休中にやったことまとめたみた。 目次 FCNの論文まとめた U-Netの論文まとめた DeepLabv3+の論文まとめた U-Net実装した Optuna使ってみた Quiver使ってみた A Recipe for Training Neural Networksを読んだ 今後やっていきたいこと FCNの論文まとめた …

Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation(ECCV2018)

SemanticSegmention関連の論文メモ 図は論文からの引用 GoogleのDeepLabv3の進化版であるDeepLabv3の論文。 目次 目次 概要 論文リンク 著者 提案手法 DeepLabv3からの変更点 Atrous Spatial Pyramid Pooling 改良版Xception 結果 実装 参考リンク 概要 オブ…

Fully Convolutional Networks for Semantic Segmentation(CVPR2015)

SemanticSegmention関連の論文メモ 図は論文からの引用 目次 目次 概要 論文リンク 著者 提案手法 FCN32s FCN16s FCN8s 結果 実装 参考リンク 自分の実装 PyTorch Keras 概要 クラス分類用の学習済みモデルをfine tuningして全結合層なしモデルを構築しSeman…

U-Net: Convolutional Networks for Biomedical Image Segmentation

SemanticSegmention関連の論文メモ 図は論文からの引用 目次 目次 概要 論文リンク 著者 提案手法 U-Net 結果 実装 動画 メモ 概要 コンテキスト情報を抽出するcontracting pathとアップサンプリングを行うexpansive pathを持ち、contracting pathの特徴マッ…

Pyramid Scene Parsing Network(CVPR2017)

SemanticSegmention関連の論文メモ 図は論文からの引用 目次 目次 概要 論文リンク 著者 従来の課題 解決策 結果 実装 動画 メモ 概要 pyramid pooling moduleを使って異なる大きさの特徴マップを生成、利用することで画像全体と局所的なコンテキスト情報を…