まちの経営を支えるタウンマネージャー

はじめに

都市経営に携わる上で必要そうな事を探ります。

www.amazon.co.jp

ウンマネージャー

ウンマネージャーの仕事とは、一言で言うと、街の変化に対して仕掛ける事だそうです。都市の変化には地元住民による懸命な取り組みが発生していますが、勿論彼らにも生活があって、個人ぞれぞれで利害や私情も発生する事があります。その為これらの活動がかえって、全体としてマイナスの効果を生む場合もあります。タウンマネージャーは俯瞰的・中立的な視点で、都市のサスティナビリティを目的とし、多くの人間を巻き込んで取り組んでいく人間をこう呼ばれています。

必要な事

巻き込む力

ウンマネージャーは決して自分の故郷・在住地のマネジメントに携われるとは限りません。本書でも全く縁も所縁もない地域のタウンマネジメントに対して、地域住民を巻き込んでいく能力は既に身に付いている方が多いです。また彼らの悩みはさらに高次元にある「人間との付き合いには限界がある」点であり、地域住民にも性格・特性が様々であり、些細な事だと感じながらも、彼らに同調してくれる人間と反発する人間が必ず発生するという事が挙げられています。ここで敵を作りすぎてしまうと、実現できる事も実現できなくなります。タウンマネジメントAの教訓としては、当初は表に出すぎず、着実に地域内外のネットワークを構築する事で、黒子になりきる、都市という舞台を裏から回す調整役であるべきという人もいます。まあここは個人の力量や特性次第でもあると思います。タウンマネジメントBの質の高い考えを見せる事で、自分の発言に説得力を持たせるという考えもあります。

コンテンツへの説得力

見せられるコンテンツには説得力を要します。地域住民にとってどんなコンテンツだと乗り気になってもらいやすいのでしょうか。タウンマネジメントCはコンテンツ作成には三つのコツがあると訴えます。一つは地域の既存の何かを生かす考え。既存=今までやってきた事を活用する事で、聞く耳を持ってもらいやすいと言います。二つ目は無理をしないことで継続性を高める。三つ目はストーリー性を描く事で、プロジェクトが将来的にどのように発展していくのかを明確にします。

長期的視点と継続性

プロジェクトが継続しない要因として、長期的な計画が描かれていない事が多いと言います。当初多くの人間が協力してくれますが、それは活動貢献への実感によるものだと言います。目先の目的を達成したところで、目的が一体何の効果が得られるのか、目的の先が無いと、協力者はマンネリを感じて、事業の継続性に困難が生じます。そこで目的を達成したところで実感以上のニーズの提供を共有する必要があるようです。その為、あらかじめ軸や方向性を定めておく必要はあるが、それだと限られた時間内に事業が完結できない可能性もあります。そこでタウンマネジメントDは事業の発掘や調査の段階で、都市の変化や空気感を感じて、その都度、方向性を自分なりの解釈に落とし込む時間を平行で行うようです。

都市経営を数字で

ウンマネジメントとは都市経営学のプロでもあるが、彼らはどのようなデータを重視しているのか。衰退都市と一概に言っても、何を持って衰退なのか、衰退の要因とは何かを探る必要があります。例えばタウンマネジメントEは商業床・購買額・単位面積売上高・空き店舗数を判断して、将来的な商業床過剰供給が深刻化するとしたら、都市全体でダウンサイジングを行い、固定資産税の削減につなげるリノベーション策を打ち出していました。

空き店舗の削減を目的に挙げたとして、ここでは商店街の組織の統廃合のような人間関係が絡む仕事も存在します。そして一タウンマネージャーが都市のダウンサイジング化を提唱したところで、反発する勢力が少なからず存在します。タウンマネジメントEは商店街の組織とも信頼関係を築くことに全力を捧げ、単なる組織の統廃合という目的に留まらず、無駄な経費の削減→次世代の商店街デザインの構築→財源確保→新サービスの提供につながり、商店街の質の向上につながる将来的なロードマップを見せる必要があり、その一段階目として、組織の統廃合が存在する事を理解してもらう必要があります。上記で述べた「長期的視点と継続性」でのストーリー性が提案に説得力を持たせるのです。

結論

  • 人を巻き込む力
  • 提案への説得力を高めるコンテンツ
  • コンテンツには目的の先をロードマップで示す

DarkNetで高速検出をPythonで書いてみる

はじめに

久しぶりに物体検出向けフレームワークであるDarkNetを触ってみました。
DarkNetそのものはC言語で記述されており、C言語でバリバリ書けるぜと言う方にはオススメしない記事です。
PythonでDarkNetでのテスト画像の物体検出ができるのか試してみました。

melheaven.hatenadiary.jp

melheaven.hatenadiary.jp

コマンドでの検出(detector.c)

検出したいテスト画像単体を指定する場合は以下のコマンドで実行できます。
この場合だとC言語のプログラム(./examples/detector.c)が動作しますので、あらかじめmakeしておく必要があります。
OPTIONが動作しない場合は(./examples/darknet.c)を開いて使用できる引数コマンドを確認してみてください。

$ ./darknet detector test <data> <cfg> <weights> data/test.jpg(検出したい画像) [OPTION]

複数枚の画像を一括で検出したい場合は以下のコマンドです。
input.txtには複数枚の画像を格納したパスを列挙したtxtを指定します。

$ ./darkent detector test <data> <cfg> <weights> [OPTION] < input.txt


input.txt

data/obj/1.jpg
data/obj/2.jpg
.
.

ichiya.netlify.app

Pythonでの検出

github.com

コードを動作させる上で以下のファイルが必要です。「from ctypes import *」「lib = CDLL("darknet/libdarknet.so", RTLD_GLOBAL)」で、libdarknet.soをロードし、Python3でDarkNetを利用できるようになっています。

  • libdarknet.so
  • backupフォルダに格納されたweightsファイル(backup/yolov2-voc_50000.weights")
  • cfg/obj.data(クラスが列挙されたファイル)
  • cfg/yolov2.cfg(YOLOネットワークの情報を記載したファイル)
  • ./result/output/*.jpg(対象画像)

詳しいコードは上記にて載せています。今回はクラス個数=1としていますが、クラス数≥2の場合も後日記述したいと思います。
以下のdetect関数内で検出領域で最も確率が高いオブジェクトが検出領域の座標と共にが返されています。

def detect(net, meta, image, thresh=.1, hier_thresh=.5, nms=.45):
・・・
     res.append((meta.names[i], dets[j].prob[i],
                           (b.x, b.y, b.w, b.h)))
・・・

各検出領域に対して”出力クラス+領域の座標”の情報が配列として格納されています。
こちらでは入力した検出対象の画像(.jpg)と検出領域を可視化した画像(.jpeg)で出力できるようにしています。

for _img in imglist:
        _resultimg = _img.replace("jpg","jpeg")
        img = imread(_img)
        _h,_w,_ = img.shape
        r = detect(net, meta, img)
        for i in r:
	    x, y, w, h = i[2][0], i[2][1], i[2][2], i[2][3]
	    xmin, ymin, xmax, ymax = convertBack(float(x), float(y), float(w), float(h))
            class = i[0] # 出力クラス
	    pt1 = (xmin, ymin)
	    pt2 = (xmax, ymax)
	    cv2.rectangle(img, pt1, pt2, (0, 255, 0), 2)
	    print("{:.6f} {:.6f} {:.6f} {:.6f}".format(x/_w, y/_h, w/_w, h/_h)) # AnnotationFIleを生成したい方は出力情報をtxtファイルに書込+保存
        cv2.imwrite(_resultimg, img)

【SpringBoot入門】IntelliJで自動ビルドがうまくいかない件【解決済】

はじめに

お久しぶりです。最近、資格試験と研究活動でまたブログを書いていませんでした。(お前何回目やねん)
短編小説・心理学検定・動画制作・Java勉強などやりたいことはあるんですけどね・・・。

そこで突如、Spring Bootの勉強をしたい!と思い、IntelliJというEclipseより今風?な統合開発環境をインストールしました。
チュートリアルを進めるうちに、「ソースコードを編集→ブラウザに反映」がなされず「不便だな・・・」と思っていたので記載します。

自動ビルドがうまくいかない

しかしHTMLを修正しただけではブラウザが更新されず、自動ビルドができていないのではと思っていたらビンゴでした。

前提として以下のサイトで行なった手順は踏んでいます。
saikeblog.com

  • Build project automaticallyにチェック(Command + ","で設定→コンパイラ
  • build.gradleに”compile("org.springframework.boot:spring-boot-devtools")”を追加
  • compiler.automake.allow.when.app.running にチェック(command + shift + A→”Registry or レジストリ”と検索)

これでもダメ。
するとこんなエラーが・・・。

「ソースリリース11には、ターゲットリリース11が必要です。」

解決

1. プロジェクト構造(Command + "+")→モジュール→依存関係にてSDKバージョン指定が11になっていなかったので修正。

以下の記事にて参照。
colloidgel.hatenablog.com

2. バイトコードのバージョンを修正(Command + ","で設定→コンパイラJavaコンパイラ

選択しているバイトコードのバージョンを指定します。

f:id:electric-city:20210609180725p:plain

3. プロジェクトSDKのバージョンも確認

f:id:electric-city:20210609180704p:plain

stackoverflow.com

これで自動ビルドは動作しました。

ThymeLeafの反映

SpringBootのプログラムの自動ビルドは完成しましたが、HTMLファイルの修正にはまだ無効な状態です。
HTMLは今回、ThymeLeafというJava XMLXHTMLHTML5のテンプレートエンジンを適用しています。application.ymlに以下の記述をすれば良いだけです。

spring:
  thymeleaf:
    cache: false
    cache-period: 0
    prefix: file:src/main/resources/templates/

再ビルドを行うとHTMLファイルの修正にも適応した自動ビルドの完成です。

「嫌われる勇気」を読んで

はじめに

人間関係で苦労したことは正直あまり無いのですが、心に闇を抱えているのでこの記事を書きます。

前回、アドラー心理学に入門してこんな記事を書きました。
アドラー心理学で重要なのは「目的論」「劣等感」「共同体感覚」とされています。

melheaven.hatenadiary.jp

今回は「嫌われる勇気」という本を読んでアドラー心理学を深めていこうと思います。
www.amazon.co.jp

どんな本か

「嫌われる勇気」とはアドラー心理学で有名な岸見一郎氏・古賀史健氏による著書。登場人物はアドラー心理学を極めた哲学者「哲人」とアドラー心理学と対極の人生を歩んできた「青年」の二名です。「哲人」は「青年」の悩みをアドラー心理学を通じて諭しながら、アドラー心理学とはどのようなものかを学ぶことができます。

特に「人からどのように思われたいか」「嫌われているのではないか」と人間関係絡みの悩みを吐露する青年に自己投影・共感できる読者向けです。

重要なメモ

話途中、「青年」がアドラー心理学において以下の重要なメモを残しています。

  • 自立すること
  • 社会との調和
  • 「私には能力がある」という意識
  • 「人々は私の仲間である」という意識

劣等感

人は誰でも劣等感を持っています。劣等感を感じるというのは、「他人と比較して」自分の能力や容姿、生い立ちに対して激しく抱くコンプレックス又は感情です。ここで重要なのは「他人と比較している」という点です。劣等感として抱く悩みは客観的事実ではなく、主観的解釈であり、他者が存在する世界でなければ、それは劣等感を抱かないという考え方です。極端な話、身長や成績といった評価も「人と比較して身長が低い」「人と比較して成績が悪い」という事実があるとします。果たしてその事実は「劣等性なのか否か」、これを勝手に判断して勝手に劣等感を感じているのは自分自身ということです。

ただ劣等感は決して悪い話ではなく、ストイックさや向上心に繋がれば、あながち悪くない・・・。しかし劣等性を原因として言い訳を始めた段階だとこれは劣等コンプレックスとなり、目的論が前提のアドラー心理学としては否定的な現象となります。

向上心を磨く際も「今の自分」と比較して精進を続けたとしても、たまに「他人からの自慢」が入ってきます。自慢というのは「劣等コンプレックスを抱える自分を受け入れられない」がために、偽りの優越感を満たす最も安直な手段であるとされています。そしてさらに面罵された場合は、その人の隠し持つ目的を探ることが重要です。

結論:劣等感は他人と比較して発生する主観的解釈によるもので、本来比較すべきなのは理想の自分である。

承認欲求

他人から嫌われないように生きる。嫌われたい人間って正直少ないでしょうね。自分も嫌われたくありません。

何より衝撃的なのは著書では承認欲求は「自己中心的」であるということです。他人からの評価を得ることは必ずしも善ではないという話です。むしろ自分の承認欲求に執着していて、周囲が見えなくなってしまうケースを考えると妙に納得できました。

他人が自分を嫌うのは「他人のタスク」であることを肝に銘じます。世の中には自分で変えられることとそうでないことがあります。自分が嫌われている原因が自分にあり、改善できる余地があるのなら、それは自分の課題です。しかしそれでもなお、相手が自分を嫌うのなら、それは他人の課題になります。ここまで来れば、自分(私)は他人の課題(=自力で変えられないこと)に介入しない方が賢明であると言えます。

よくよく考えると、私を好いている人間は一割以下、嫌っている人間も一割以下です。そう大多数が無関心。会社や学校で自分のことをほとんど嫌っているとしても、さらに広い社会で見ればそんなもんですね。(よっぽどの悪事を引き起こさない限り)

最後に著書では嫌われない欲求よりも重要なことがあると説明しています。それは「自分が信じる善を行動に移すこと」です。官僚でも上司の言いなりを国のためにと思って、動いたけど結局それは善なのか?と悩む方が多いらしいです。

結論:承認欲求に捉われるより自分が信じる善を行動に移すことに突き進む。

自分の価値

よく人が周りの人間からけちょん、けちょんに言われて「自分の価値って何・・・」となること。

他人の物差しで判断されたことを自分の価値であると考えるべきではありません。評価するのが他人だとしたら、上記の章で言う、他人の課題によるところが大きいと言えます。アドラー心理学は上下関係に対して否定的です。つまり他者評価とは「上の人間が下の人間を評価する」構図が存在します。重要なのは「横の関係」です。

「横の関係」で自分の価値を感じるケースは他人から感謝された時、他者に貢献した時です。この考え方は「共同体感覚」に密接に繋がってきます。共同体感覚とは「相手に対して与え(GIVER)貰う(GETTER)の関係性を築く」ことです。「相手の立場となって相手に与える(GIVER)」客観性を持つ事により、自分が何をすれば感謝されるのか、客観的に自分の価値を捉える事がより可能になります。

結論:他者からの評価は価値と考えるより、感謝される事により自分の価値を感じる方が良い。

感想

そうかもしれんけど、行動に移すのが難しい。